【问题标题】:Changing a date in a column by 30 based on the date in another column根据另一列中的日期将列中的日期更改 30
【发布时间】:2013-02-26 19:20:43
【问题描述】:

我想根据另一列中的日期在数据库中更改 1 个日期列。这是我的列与示例输出

dtexpires    dtcreated
1/1/13         1/15/13
1/1/13         1/16/13
1/1/13         2/1/13

我想将“dtexpires”更改为“dtcreated”加上 30 天。

表名是“客户”

【问题讨论】:

    标签: sql sql-server sql-server-2005 date


    【解决方案1】:

    你需要使用DATEADD:

    UPDATE Customers
    SET dtExpires = DATEADD(dd,30,dtCreated)
    

    http://msdn.microsoft.com/en-us/library/ms186819.aspx

    【讨论】:

    • 请使用DAY 而不是dd。速记会给你带来很多麻烦(例如比较 yYEAR)。如果您的意思是MONTH,请输入MONTH
    【解决方案2】:
    UPDATE customers
    SET dtexpires = dateadd(d,30,dtcreated)
    

    【讨论】:

      【解决方案3】:

      您的示例数据看起来像是将字符串存储为日期。假设dtcreated is a date type字段

      update customers
      set dtexpires = dateadd(day,30, dtcreated)
      

      【讨论】:

      • 我的立场是正确的。它一定是在 2005 年添加的。从未在 SQL 2000 中工作过
      猜你喜欢
      • 2022-07-12
      • 2012-07-19
      • 2021-06-16
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      相关资源
      最近更新 更多