【问题标题】:COPY data from table1 to table2 with date inserted as 7 days back or 14 days back?将数据从表 1 复制到表 2,插入日期为 7 天前或 14 天前?
【发布时间】:2013-12-11 19:38:27
【问题描述】:

我有一个包含这么多列的 table1 -

A
B
C

现在我有一个包含这么多列的 table2

A
B
C
D
E

在表 2 中,我将 D 作为 created_date,将 E 作为 updated_date。现在我想将 table1 数据导入到 table2 中,我已经将 table1 数据导出到 CSV 文件中。

最初我将 D 列和 E 列设为 now(),所以当我使用 COPY command 将数据从 table1 复制到 table2 时,日期会自动插入,即当前日期。

现在我正在寻找的是,每当我将任何数据从 table1 复制到 table2 时,created_dateDupdated_date 这是 E 在上面 table2 应该设置为 now()-interval '7 days'

如上所述,我已经将 table1 数据导入 CSV 文件,现在我需要将此 CSV 文件导入 table2,这样当我使用 COPY 命令插入时,我应该能够将 created_date 和 updated_date 设置为 @ 987654331@返回或14 days返回等。

基本上,我希望这是可配置的,假设如果我使用 COPY 命令,则根据情况是否需要将数据插入 7 天,然后在复制数据时,我应该设置该日期应该从命令行返回 7 天或 14 天或 30 天。

有什么办法可以做到吗?任何帮助将不胜感激..

更新:-

我忘了提,这两个表都在不同的数据库中。所以我猜我们不能在选择查询上插入基础..

【问题讨论】:

    标签: sql database postgresql csv


    【解决方案1】:
    INSERT INTO [TARGET_DB].[dbo].Table2
                         (adID, CampaignName, EndDate)
    SELECT        adID, [CampaignEndDate],   DATEADD(d, -14, [CampaignEndDate]) as EndDate
    FROM    [SOURCE_DB].[dbo].Table1
    

    替换 -14 天前


    如果数据库在同一服务器上,则使用上述

    要更新其他数据库不同的服务器,您可以使用连接字符串

    使用
    OPENQUERY (Transact-SQL)
    http://technet.microsoft.com/en-us/library/ms188427.aspx

    连接开放数据源
    http://technet.microsoft.com/en-us/library/ms179856.aspx

    【讨论】:

    • 我忘了说,这两个表都在不同的数据库中。所以我猜我们不能在选择查询上插入基础..
    • 是的,你可以做到
      A.您可以使用 SELECT INTO 来构建新表并在该索引之后添加
      B.您可以先定义架构,然后使用 INSERT INTO Table2 插入,选择来自 Table1,然后导入到另一个 DB;我可以在 2 小时内将解决方案发布给您我在我的另一台 PC 上您可以打开与我之前做过的其他数据库的连接
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2021-12-05
    相关资源
    最近更新 更多