使用TSQL中的Hardcore和computed字段更新字段

时间:2016-08-22 21:48:56

标签: sql-server tsql

我正在开发一个程序,在X发生之后,我将日期设置为次年7月的第一年。

UPDATE dbo.PAY_paymentDetails 
SET nextPayment = CASE 
                     WHEN DATEPART(MONTH, dateMade) < 7 
                          AND DATEPART(YEAR, dateMade) = DATEPART(YEAR, GETDATE()) 
                        THEN DATEPART(YEAR, DATEADD(YEAR, 1, GETDATE())) 
                     ELSE DATEPART(YEAR, GETDATE() + 1) 
                  END

所以我使用

在当年添加一年
SELECT DATEPART(YEAR,DATEADD(YEAR,1,GETDATE())

这导致2017年,但我无法弄清楚如何操纵我的tsql所以给我2017-07-01

1 个答案:

答案 0 :(得分:0)

目前,您只从日期部分功能中选择年份。如果您执行类似

的操作
SELECT CAST(CAST(DATEPART(YEAR, DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) + '-' + CAST(DATEPART(MONTH,DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) + '-' + CAST(DATEPART(DAY, DATEADD(YEAR, 1, GETDATE())) AS VARCHAR) AS DATE)
那么你就得到了你想要的东西。不是最漂亮的黑客,但它的工作原理。希望它有所帮助..