TSQL datediff在一周和几天内返回相同的结果

时间:2019-06-24 11:55:08

标签: tsql

为什么一周和一天的datediff对于一周和一天返回相同的结果?

这是我正在使用的查询;

select DATEDIFF("D",[ARRS-DATE], GETDATE()) daysdiff ,DATEDIFF("W",[ARRS-DATE], GETDATE()) weeksdiff,*  from [RE-ARRS-HIST]

关于什么原因的任何想法?

谢谢。

1 个答案:

答案 0 :(得分:5)

"w"并非数周的简写,它是WEEKDAY的别名。由于“工作日”作为datediff选项实际上没有任何意义,因此我想这就像在后台行事一样。

如果您想要周数差异,则需要使用"ww""wk"。或者最好还是使用完整版本WEEK,它更加清晰,而且编写起来也不难。

SELECT  DATEDIFF(DAY, [ARRS-DATE], GETDATE()) AS daysdiff,
        DATEDIFF(WEEK, [ARRS-DATE], GETDATE()) AS weeksdiff
FROM    [RE-ARRS-HIST];

Bad Habits to Kick : Using shorthand with date/time operations