我的查询有一个名为CREATED_DATE的字段。这将从数据库中提取日期字段:
2015-05-11 12:23:58
但是我需要在查询本身中分割这个日期,因为我需要在查询的where部分使用年份和月份,例如:
SELECT CREATED_DATE FROM b_created_table WHERE YEAR = '2015' AND MONTH = '05'
我会用什么来分割它以获得我需要的两个部分。然后,我会在AS YEAR和AS MONTH中使用这些部分,以便我可以在查询的WHERE部分中使用它们。
提前致谢
答案 0 :(得分:2)
您的具体问题的答案是:
SELECT CREATED_DATE
FROM b_created_table
WHERE YEAR(CREATED_DATE) = 2015 AND MONTH(CREATED_DATE) = 05;
但是,一般情况下,您希望避免可能被索引的列上的函数 - 并且CREATED_DATE
可能会被编入索引。函数阻止使用索引。您有几个选项,但这里有一个如何避免这种情况的例子:
WHERE CREATED_DATE >= DATE(CONCAT_WS('-', '2015', '05', '01')) AND
CREATED_DATE < DATE(CONCAT_WS('-', '2015', '05', '01')) + INTERVAL 1 MONTH
答案 1 :(得分:0)