簡體   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