簡體   English   中英

日期之間的查詢也返回前幾個月的行

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

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