在SQLServer中使用DATEPART到CASE仅检查月份和日期

时间:2017-02-13 01:07:06

标签: sql-server

SELECT CAST(
             CASE 
                  WHEN n_asset_acquisitionDate = GETDATE() 
                     THEN .../*UPDATE SOMETHING*/
             END AS float) as Depreciation, * 
FROM normal_asset

您好我刚才使用CAST并且确实需要这种方法,我只希望WHEN n_asset_acquisitionDate只检查GETDATE()月和日,以便每个月都会进行更新。任何评论,方法,建议,方法都很好,
P.S:
我已经在[线程] [1]中读到使用CASE是不是很糟糕?我真的不明白。

[1]:http://weblogs.sqlteam.com/jeffs/archive/2003/11/14/513.aspx

编辑:
会发生什么是我正在增加numeric列。因此,每个月(插入月份的一天)它将增加。例如,

n_asset_acquisitionDate   n_asset_ul
2017-2-13                 1
2017-2-13                 4
2017-2-15                 4

所以在3月13日,当我运行查询时,它会像这样

n_asset_acquisitionDate   n_asset_ul
2017-2-13                 2
2017-2-13                 5
2017-2-15                 4

1 个答案:

答案 0 :(得分:0)

您可以使用where子句::

进行更新
UPDATE normal_asset
SET n_asset_ul = n_asset_ul + 1
WHERE n_asset_acquisitionDate = convert(date, GETDATE())