CASE日期之间的陈述

时间:2015-01-11 22:52:04

标签: mysql sql date case

对于我的EntryDate专栏,我一直试图按月将我的数据成功分成特定名称' 2013_04' 2013_05'等等,所以我以后可以用它来分组我的数据。到目前为止,这段代码还没有成功,如何才能改变它的工作?

CASE
WHEN EntryDate BETWEEN '2013-04-01' AND '2013-04-30' THEN '2013_04'
WHEN EntryDate BETWEEN '2013-05-01' AND '2013-05-31' THEN '2013_05'
WHEN EntryDate BETWEEN '2013-06-01' AND '2013-06-30' THEN '2013_06'
END

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用DATE_FORMAT功能:

DATE_FORMAT(EntryDate, '%Y_%m')

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-format

答案 1 :(得分:0)

我会使用year()month()函数,因为这在数据库中很常见:

CONCAT_WS('_', YEAR(EntryDate), MONTH(EntryDate))

但是,DATE_FORMAT()也是一个很好的解决方案。

答案 2 :(得分:0)

DATE_FORMAT()是最好的选择,但是如果字符串函数和CONVERT可以使用各种数字