繁体   English   中英

CAST(DateColumn AS DATE)和DATEADD(DD,DATEDIFF(DD,0,DateColumn()),0)之间的差异

[英]Difference between CAST(DateColumn AS DATE) and DATEADD(DD, DATEDIFF(DD, 0, DateColumn()), 0)

我想知道两者之间的区别

SELECT CAST(DateColumn AS DATE) 

SELECT DATEADD(DD, DATEDIFF(DD, 0, DateColumn()), 0)

我有很长的计算看起来像这样:

sum(case when DATEADD(dd, DATEDIFF(dd, 0,ModifiedOn), 0) between DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) AND DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) -7 THEN 1 ELSE 0 END) [0-7 Days]

我想知道与仅Cast(DateColumn as Date)相比,上述DateAdd和DateDiff的组合(广泛用于剥离时间)之间有什么区别?

会有区别吗? 对我来说,它看起来一样,但只是想确保它们都做同样的事情,因此我可以实现后者。

ModifiedOn列是DateTime类型

谢谢

他们俩都做同样的事情。

SQL Server在2008版中引入了date数据类型。在以前的版本中,没有“便捷”的方法从datetime值中删除时间部分。 解决方案是从某个标准时间点(例如“ 0”)计算天数,然后将这些天数相加。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM