![](/img/trans.png)
[英]How to create a function in SQL Server to compare 2 datetime2 values with GETDate and return a boolean
[英]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.