我對如何按日期格式篩選記錄有點困惑。使用DD-MM-YYYY設置MySQL篩選記錄日期格式
我在日期表中有date(yyyy-mm-dd)數據類型的日期列。
例:
date
-----
2017-01-29
2017-01-30
我想改變格式(DD-MM-YYYY)。我正在使用此代碼
SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') as date
FROM
dim_date;
date
-----
29-01-2017
30-01-2017
我想用(dd-mm-yyyy)格式過濾記錄。所以我嘗試了這個代碼。
SELECT
DATE_FORMAT(`date`, '%d-%m-%Y') date
FROM
dim_date
WHERE DATE_FORMAT(`date`, '%d-%m-%Y') BETWEEN '20-04-2015' AND '06-09-2017';
結果 沒有
但是,如果我嘗試用原始格式過濾(YYYY-MM-DD),它的作品。
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') date
FROM dim_date
WHERE DATE_FORMAT(`date`, '%Y-%m-%d') BETWEEN '2015-04-20' AND '2017-01-07';
爲什麼Mysql中這種奇怪的行爲?我在這裏錯過了什麼嗎?
我也有這種格式DATE_FORMAT(
日期, '%d-%c-%Y')
,DATE_FORMAT(
日期, '%d-%l-%Y')
& DATE_FORMAT(
日期, '%e-%l-%Y')
沒有笑臉試過了,請讓我知道。
感謝
最大
我沒有看到這兩個查詢之間的區別..。 。請詳細解釋 – scaisEdge
'Date_format'會給你一個字符串。如果你把你的值作爲一個字符串進行比較,那麼就不會有'> = 2'和'<= 0'的字符(這就是'2'和'0'之間'要查找的內容)。你爲什麼要這樣使用它?您可以將您的輸入轉換爲有效日期並比較有效日期。它也可以讓你使用索引。而且,它實際上會根據您的需要進行過濾。 – Solarflare
@scaisEdge我已更新查詢。請立即檢查。對不起,我現在對日期格式感到困惑。 – MAX