簡體   English   中英

查找特定日期范圍內的結果

[英]Find results in certain date range

我試圖只抓取屬於某個日期范圍的記錄。 問題是時間戳和日期作為字符串存儲在同一單元格中。 我想只抓住日期在2013-05-01和2013-05-03之間的行。

日期(存儲為字符串)

2013-05-01T23:19:44
2013-05-02T23:19:40
2013-05-06T23:19:46
2013-05-06T23:15:17

MySQL的

SELECT * FROM table WHERE date BETWEEN 2013-05-01 AND 2013-05-03

嘗試

SELECT *
  FROM table1
WHERE STR_TO_DATE(`date`,'%Y-%m-%d') BETWEEN '2013-05-01' AND '2013-05-03'

SQLFiddle

正如@FreshPrinceOfSO絕對正確地指出的那樣,在這種情況下不會使用索引

SELECT * FROM table1 
WHERE STR_TO_DATE(SUBSTRING(`date`,1,10),'%d-%m-%Y') 
    BETWEEN '2013-05-01' AND '2013-05-03'

該字符串幾乎是datetime有效語法。 因此,另一種方法,如果可能更慢的方法是用空格替換'T',然后將其轉換為datetime

SELECT * FROM table1 WHERE
  CAST(REPLACE(`date`, 'T', ' ') AS DATETIME) 
  BETWEEN '2013-05-01' AND '2013-05-03';
SELECT * FROM table 
WHERE date('yourdate') BETWEEN date('2013-05-01') AND date('2013-05-03')

暫無
暫無

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

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