簡體   English   中英

在Excel中的ODBC中與今天的日期和時間戳進行比較?

[英]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

那些日期:

  • 格式特殊,在Excel中看起來像這樣: '26/02/2018 00:00:00'
    (法語格式, 年月日
  • 可以裝滿
  • 0似乎是'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_0BOMSTRDAT均為零或為null的行,這真的是預期的行為嗎?

暫無
暫無

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

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