MYSQL案例当根本不工作

时间:2016-07-12 09:57:53

标签: mysql sql case case-when

我试图将我的TIMESTAMP转换为代表财政年度的字符串,例如四月到三月

以下是我的声明:

SELECT Year, Type
CASE 
WHEN date_format(SubmissionDate, '%Y')='2015' AND MONTH(SubmissionDate)
BETWEEN 4 AND 12 THEN '15-16'
WHEN date_format(SubmissionDate, '%Y')='2016' AND MONTH(SubmissionDate)
BETWEEN 1 AND 3 THEN '15-16'
END as Year
FROM Incidents

显然它失败了......我非常知道CASE语句,我在附近吗?

2 个答案:

答案 0 :(得分:1)

,之后你错过了Type

SELECT Year, Type,
CASE 
WHEN date_format(SubmissionDate, '%Y')='2015' AND MONTH(SubmissionDate)
BETWEEN 4 AND 12 THEN '15-16'
WHEN date_format(SubmissionDate, '%Y')='2016' AND MONTH(SubmissionDate)
BETWEEN 1 AND 3 THEN '15-16'
END as Year
FROM Incidents

答案 1 :(得分:0)

我很好奇为什么要混合这样的功能。为什么不这样做:

SELECT Year, Type,
       (CASE WHEN YEAR(SubmissionDate) = 2015  AND MONTH(SubmissionDate) BETWEEN 4 AND 12
             THEN '15-16'
             WHEN YEAR(SubmissionDate) = 2016 AND MONTH(SubmissionDate) BETWEEN 1 AND 3
             THEN '15-16'
        END) as Year
FROM Incidents;

或者,更简单:

SELECT Year, Type,
       (CASE WHEN YEAR(DATE_SUB(SubmissionDate, INTERVAL 3 MONTH)) = 2015  
             THEN '15-16'
        END) as Year
FROM Incidents;