在SQL中我试图将日期转换为mmm-yy
,然后从4月开始排序为第一个月。到目前为止,我已设法使用
mmm-yy
SELECT
LNAME as Location,
SUBSTRING( CONVERT( VARCHAR(11), MonthEnd, 113), 4, 8) AS [MonthEnd],
CAST (TYPEDESC as VARCHAR(20)) as 'Factory',
Sum(Tonnes) as Tonnes
FROM (
SELECT
EOMONTH(X_DELIVERY_DATE) as MonthEnd,
...
但是我无法完成最后一步,我得到的是按字母顺序排序的日期。如果有人可以请求帮助!!
答案 0 :(得分:1)
让我们假设你使用SQL Server:
DECLARE @Temp TABLE
(
MonthEnd DATETIME
)
INSERT @Temp VALUES
('2015/01/01'),
('2015/02/01'),
('2015/03/01'),
('2015/04/01'),
('2015/05/01'),
('2015/06/01'),
('2015/07/01'),
('2015/08/01'),
('2015/09/01'),
('2015/10/01'),
('2015/11/01'),
('2015/12/01'),
('2016/01/01'),
('2016/02/01'),
('2016/03/01'),
('2016/04/01'),
('2016/05/01'),
('2016/06/01'),
('2016/07/01'),
('2016/08/01'),
('2016/09/01'),
('2016/10/01'),
('2016/11/01'),
('2016/12/01')
SELECT MonthEnd, SUBSTRING(CONVERT(VARCHAR(11), MonthEnd, 113), 4, 8)
FROM @Temp
ORDER BY YEAR(MonthEnd), (MONTH(MonthEnd) + 8) % 12
答案 1 :(得分:0)
您可以使用DATEPART功能
DATEPART(month, '10/5/2015')
尝试这个计算:
SELECT (DATEPART(year, '3/5/2015') * 100) +
(CASE WHEN DATEPART(month, '3/5/2015') > 3
THEN DATEPART(month, '3/5/2015') - 4
ELSE DATEPART(month, '3/5/2015') + 9
END);