MySQL dateformat %c 没有 return 结果?
MySQL dateformat %c does not return results?
为什么 MySQL dateformat
函数不获取查询中包含月份的行?
SELECT p.*
FROM article AS p
WHERE p.parent_id = '6'
AND DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 8'
GROUP BY p.article_id
ORDER BY p.backdated_on DESC
LIMIT 0, 6
我有一行 backdated_on
of 2015-11-08 19:10:04
知道为什么以及如何解决这个问题吗?
月份是'2015 11':
mysql> select DATE_FORMAT('2015-11-08 19:10:04', '%Y %c');
+---------------------------------------------+
| DATE_FORMAT('2015-11-08 19:10:04', '%Y %c') |
+---------------------------------------------+
| 2015 11 |
+---------------------------------------------+
1 row in set (0.00 sec)
'2015 8'
匹配 2015-08-dd ...
.
这样的日期
如果日期是2015-11-08 19:10:04
,那么对应的逻辑就是:
DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 11'
但是,使用字符串函数比较日期是一个坏习惯。相反:
(p.backdated_on >= '2015-11-01' and p.backdated_on < '2015-12-01')
为什么 MySQL dateformat
函数不获取查询中包含月份的行?
SELECT p.*
FROM article AS p
WHERE p.parent_id = '6'
AND DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 8'
GROUP BY p.article_id
ORDER BY p.backdated_on DESC
LIMIT 0, 6
我有一行 backdated_on
of 2015-11-08 19:10:04
知道为什么以及如何解决这个问题吗?
月份是'2015 11':
mysql> select DATE_FORMAT('2015-11-08 19:10:04', '%Y %c');
+---------------------------------------------+
| DATE_FORMAT('2015-11-08 19:10:04', '%Y %c') |
+---------------------------------------------+
| 2015 11 |
+---------------------------------------------+
1 row in set (0.00 sec)
'2015 8'
匹配 2015-08-dd ...
.
如果日期是2015-11-08 19:10:04
,那么对应的逻辑就是:
DATE_FORMAT(p.backdated_on, '%Y %c') = '2015 11'
但是,使用字符串函数比较日期是一个坏习惯。相反:
(p.backdated_on >= '2015-11-01' and p.backdated_on < '2015-12-01')