[英]query between dates returns rows from previous months too
我有以下where子句
AND DATE_FORMAT( l.created_on, "%d/%m/%Y" ) BETWEEN '06/02/2013' AND '07/02/2013'
其中created_on
是時間戳記。
現在由於某種原因,查詢也返回前幾個月的行。 誰知道為什么?
注意 :
我需要使用特定格式的日期
MySQL字符串日期格式遵循yyyy-mm-dd模式。 如果有時間戳,請不要將其轉換為日期,只需比較時間戳即可。
WHERE l.created_on
BETWEEN UNIX_TIMESTAMP('2012/02/06') AND UNIX_TIMESTAMP('2013/02/07')
如果created_on
已經是一個日期( 數據類型 ),
您可以使用來直接查詢
WHERE created_on BETWEEN '2013-02-06' AND '2013-02-07'
但是如果date是字符串,請使用STR_TO_DATE
WHERE STR_TO_DATE(l.created_on, '%d-%m-%Y') BETWEEN '2013-02-06' AND '2013-02-07'
更新1
由於您不想更改輸入日期的格式,因此需要使用STR_TO_DATE
對其進行STR_TO_DATE
WHERE l.created_on BETWEEN STR_TO_DATE('06/02/2013','%d/%m/%Y') AND
STR_TO_DATE('07/02/2013','%d/%m/%Y')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.