我试图将我的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语句,我在附近吗?
答案 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;