的結果,當我運行此查詢:請解釋這個查詢
SELECT InwardDate
FROM tblDoc
WHERE InwardDate > DATE() AND (InwardDate IS NOT NULL)
我得到這樣的結果
5/1/2017
我在數據庫中的行具有值:
5/1/2017
因此,5/1/2017
不是> 5/1/2017
,結果應該是沒有記錄返回。
我後來去和嘗試這樣做,萬一有一個時間差,我不能看到:
SELECT DATEDIFF("s", InwardDate, DATE()) AS DiffBetween, InwardDate
FROM tblDoc
WHERE InwardDate > DATE() AND (InwardDate IS NOT NULL)
我得到:
需要注意的是,當我做:
SELECT DATE() FROM tblDoc
我得到:
5/1/2017
我看到第一個查詢返回一個明顯不合邏輯的結果,因爲存儲在數據庫中的日期與SQL中的日期具有相同的確切值,但第一個查詢說db列的值大於返回的日期由DATE()
功能。我錯過了什麼?
感謝您的幫助,但是,WHERE InwardDate> DATE()AND(InwardDate IS NOT NULL)會生成5/1/2017的單個結果行。 – NoChance
左邊也應該有'*'。嘗試刪除「InwardDate」列的默認值以使事情更清晰。 – Andre
@Andre,你關於「*」前綴的觀點以及它不代表真實行的事實非常好。事實上,如果我用「WHERE FALSE」替換整個WHERE表達式,我仍然會得到相同的結果。對於列的默認值,您額外的注意點也非常重要。非常感謝你。 – NoChance