簡體   English   中英

SQL Server:將日期時間與GETDATE()進行比較

[英]SQL Server: compare datetime day with GETDATE()

我有一個存儲過程應該獲取日期等於當前日期或將來的所有記錄。 日期保存在列targetDate中,並格式化為datetime。 我對應的WHERE子句如下:

WHERE A.targetDate >= GETDATE()

一般來說我的存儲過程工作正常,我唯一的問題是如果targetDate等於當前日期,因為所有日期都保存如下,即時間設置為零:

2014-02-22 00:00:00.000

我如何更改我的WHERE子句,以便它只考慮日期但忽略與它一起保存的時間,以便即使時間已經過,我也可以獲得當前日期的任何記錄?

蒂姆,非常感謝你提供的任何幫助。

改成:

WHERE A.targetDate >= cast(GETDATE() as date)

編輯 - 因為targetdate還包含時間,是的,格式如下:

WHERE cast(A.targetDate as date) >= cast(GETDATE() as date)

編輯 - 給出評論重新:表現,可能想嘗試:

WHERE a.targetdate >= cast(cast(getdate() as date) as datetime)

上次編輯應該給你相同的結果,並利用targetdate上的任何索引

以下內容應該為您提供當前日期,沒有時間:

SELECT DATEADD(dd,0,DATEDIFF(dd,0,GETDATE()))

這應該是你的最后一行:

WHERE A.targetDate >= DATEADD(dd,0, ATEDIFF(dd,0,GETDATE()))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM