Datepart - 试图理解

时间:2017-04-20 15:42:04

标签: sql sql-server tsql

我有以下脚本,但我想了解-14这意味着什么

 DATEPART(wk,ic.[Pick Completed DateTime]) = DATEPART(wk, getdate()-14) and  
 year (ic.[Pick Completed DateTime]) = Year(getdate()-14)

2 个答案:

答案 0 :(得分:1)

SELECT GETDATE()

给出了这个结果:2017-04-20 10:44:08.043

SELECT GETDATE() - 14

给出了这个结果:2017-04-06 10:45:33.773

注意两个日期之间的差异是14天。减去天数不是很明确,所以我建议将其更改为此代码以避免将来出现混淆:

SELECT DATEADD(DAY, -14, GETDATE())

答案 1 :(得分:0)

getdate() - 14dateadd(day, -14, getdate())相同。它是datetime s的日期算术的简写,但不是date s。

更相关。此代码检查日期ic.[Pick Completed DateTime]是否来自两周前。好的,更确切地说,那是从包含当前时间前两周的日期开始的那一周。