马布海!
是否有更新日期的短代码,额外的2年和月末?
样品:
开户:2017-04-04
有效期:2019-04-30
UPDATE dbname SET [Expiry] = DateAdd(year,2,[AccountOpened])
不添加此UPDATE dbname SET [Expiry] = DateAdd(mm,1,[AccountOpened])
因为它会增加1个月而不是上个月的日期。
由于
答案 0 :(得分:1)
如果您正在使用SQLSERVER以下脚本将给出欲望结果。在执行UPDATE操作之前,请回收原始数据。
UPDATE dbname
SET [Expiry] = DATEADD(d,-1,DATEADD(m,DATEDIFF(m,0, (DATEADD(YY,2,AccountOpened))) + 1,0))
答案 1 :(得分:1)
这适用于Sql Server(我认为是任何版本)
UPDATE dbName
SET [Expiry] = DATEADD(MONTH, ((YEAR([AccountOpened]) - 1898) * 12) + MONTH([AccountOpened]), -1)
对于Sql Server 2012+,您可以简单地:
UPDATE dbName SET [Expiry] = EOMONTH([AccountOpened], 24)
对于MySql(我猜你没有使用,因为你在你的字段中使用括号,但在这里它仍然是):
UPDATE dbName SET Expiry = LAST_DAY(DATE_ADD(AccountOpened, INTERVAL 2 YEAR))
答案 2 :(得分:0)
您在寻找此查询吗?
CAST(GETDATE()AS DATE)和DATEADD(白天, +/-数字,CAST(GETDATE()AS DATE)之间的子句= CAST([CustomDate2] AS DATE)
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,"your date")+1,0))
LastDay_AnyMonth 结果集: LastDay_AnyMonth --------
2007-08-31 23:59:59.000