2015-03-25 78 views
-1

我有一個MySQL表與日期列。MySQL條款與DATE_FORMAT

我想選擇所有的一些特定的日期範圍內的行,

select * from myTable mt 
    where DATE_FORMAT(mt.DateCol, '%y-%m-%b') between '01/03/2015' and '09/03/2015' 

其中01/03/201509/03/2015距離,並通過用戶這是dd/mm/yyyy格式選擇日期範圍和我datecolumn是yyyy-mm-dd格式。那麼如何使用DATE_FORMAT函數直接選擇行。上面的查詢給出了零結果。

+0

爲什麼你會想到一個日期的'YYYY-MM-dd'格式的比較用'mm/dd/yyyy'格式來表示意義......? – CBroe 2015-03-25 01:10:13

回答

1

爲什麼要將日期轉換爲字符串呢?只要做到:

select * 
from myTable mt 
where mt.DateCol between '2015-03-01' and '2015-03-09'; 

如果你願意,你可以添加date()周圍的常量來強調自己的類型:

select * 
from myTable mt 
where mt.DateCol between date('2015-03-01') and date('2015-03-09'); 
+0

日期值'01/03/2015'和'09/03/2015'通過表單提交以'dd/mm/yyyy'格式顯示。但我猜測MySQL只會採用'yyyy-mm-dd'格式進行比較。 – mpsbhat 2015-03-25 04:08:25

+0

我自己試圖在沒有格式化代碼中的日期的情況下進行查詢。 – mpsbhat 2015-03-25 04:09:25

+1

@mpsbhat。 。 。然後使用'str_to_date()'將字符串參數轉換爲日期。 – 2015-03-26 02:32:10