2011-02-02 72 views
0

我有一個填充日期格式的列是有用的另一個應用程序,但不是時間戳的MySQL格式。下面是它的樣子:SQL - BETWEEN時間框架與一個奇怪的時間戳

2010.01.28 12:00(「time」列)而不是mysql時間戳:2010-01-28 12:00:00(「updatetime」列)。

我需要做的日期特定的搜索兩個時間段之間以及正常的MySQL時間戳我會運行此:

SELECT * FROM table WHERE updatetime BETWEEN '$dateStart' and '$dateEnd' 

但正是這種不格式化「時間」欄工作。我寧願將該列的格式設置爲不同的應用程序需要該日期格式,所以有人知道使用MYSQL方式在0123W格式之間搜索BETWEEN兩個時間段?從PHP腳本運行

回答

4

您可以格式化時間在PHP相同的格式,或在MySQL

WHERE updatetime BETWEEN 
     date_format('$datestart','%Y.%m.%d %H:%s') 
    AND date_format('$dateend','%Y.%m.%d %H:%s') 
+0

+1從我開始思考php-vars的輸入格式,忘記了關於這個完整的 – 2011-02-02 20:09:49

2

你可能想嘗試這樣

SELECT * FROM table WHERE STR_TO_DATE(updatetime, "%d.%m.%Y %h:%i") 
BETWEEN '$dateStart' and '$dateEnd' 

東西轉換字符串轉換爲日期 - 也就是說,如果$ dateStart和$ dateEnd的值已經以正確的格式與sql日期進行比較

+1

通常不是一個好主意,可以防止INDEX使用 – RichardTheKiwi 2011-02-02 20:32:14