我对如何按日期格式筛选记录有点困惑。使用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