簡體   English   中英

MySQL日期時間少於功能

[英]MySQL Datetime Less Than Functionality

我有一個帶有一些日期時間列的表。 我需要能夠選擇同一列上兩個日期時間之間的行。

例如:

SELECT *
FROM `t_punchcards`
WHERE UserID = 'root' AND
      PunchInTime > CAST('01-01-2015 00:00:00' AS DATETIME) AND
      PunchInTime < CAST('03-06-2015 23:59:59' AS DATETIME);

由於某些奇怪的原因,這不會產生任何結果。 我試過使用BETWEEN,我試過不從字符串轉換為datetime(僅使用原始字符串),我試過<=> =。 我很迷路。

作為旁注,刪除第二個約束(AND PunchInTime <CAST('03 -06-2015 23:59:59'AS DATETIME);實際上會產生結果。您是否不允許對列表中的同一列進行比較相同的查詢?

這是表格的示例:

UserID(varchar)      PunchInTime(datetime)    PunchOutTime(datetime)
root                 01-01-2015 8:02:31       01-01-2015 12:35:51

只需將此邏輯編寫為:

WHERE UserID = 'root' AND
      PunchInTime > DATE('2015-01-01') AND
      PunchInTime < DATE('2015-03-07')

請注意,我從第二個值中刪除了時間分量。 除非您確實想將一天的最后幾毫秒與一天中的其余時間區別對待,否則這是進行比較的一種更簡潔的方法。

注意:如果您不使用MySQL或想要更多兼容的代碼,則以下內容可在更多數據庫中使用:

WHERE UserID = 'root' AND
      PunchInTime > CAST('2015-01-01' as DATETIME) AND
      PunchInTime < CAST('2015-03-07' as DATETIME)

暫無
暫無

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

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