[英]Date and time stamp comparison with today in ODBC in Excel?
我正在通過Excel ODBC查詢數據庫。
我可以使用以下命令在Excel的ODBC查詢中 將該字段與硬編碼日期進行比較 :
BOMD.BOMENDDAT_0 > {ts '2018-05-05 00:00:00'}
但是我似乎無法與當前日期進行適當的比較 :
BOMD.BOMENDDAT_0 > {ts SYSDATETIME()}
DATEDIFF(d, SYSDATETIME(), BOMD.BOMENDDAT_0) > 0
有什么建議嗎?
我正在嘗試建立一個查詢,該查詢僅選擇今天的日期介於之間的記錄:
BOMD.BOMSTRDAT_0
) BOMD.BOMENDDAT_0
) 那些日期:
'26/02/2018 00:00:00'
'00/01/1900 00:00:00'
整個查詢如下所示:
SELECT BOMD.BOMQTY_0, BOMD.UPDDAT_0, BOMD.BOMSTRDAT_0, BOMD.BOMENDDAT_0
FROM myDB.BOMD BOMD
WHERE BOMD.UPDDAT_0 > {ts '2018-01-01 00:00:00'}
AND (
(BOMD.BOMSTRDAT_0 < {ts SYSDATETIME()})
OR BOMD.BOMSTRDAT_0 = 0
OR BOMD.BOMSTRDAT_0 is null
)
AND (
(BOMD.BOMENDDAT_0 > {ts SYSDATETIME()})
OR BOMD.BOMENDDAT_0 = 0
OR BOMD.BOMENDDAT_0 is null
)
{ts '2018-05-05 00:00:00'}
用於將字符串轉換為日期時間數據類型,您不能在已為日期時間(精確為datetime2)數據類型的SYSDATETIME()
上使用它,只需使其:
SELECT BOMD.BOMQTY_0, BOMD.UPDDAT_0, BOMD.BOMSTRDAT_0, BOMD.BOMENDDAT_0
FROM myDB.BOMD BOMD
WHERE BOMD.UPDDAT_0 > {ts '2018-01-01 00:00:00'}
AND (
(BOMD.BOMSTRDAT_0 < SYSDATETIME())
OR BOMD.BOMSTRDAT_0 = 0
OR BOMD.BOMSTRDAT_0 is null
)
AND (
(BOMD.BOMENDDAT_0 > SYSDATETIME())
OR BOMD.BOMENDDAT_0 = 0
OR BOMD.BOMENDDAT_0 is null
)
順便說一句,您的代碼還將返回BOMENDDAT_0
和BOMSTRDAT
均為零或為null的行,這真的是預期的行為嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.