我在一列中有不同的日期。例如:
20080102
20070821我想将这些日期转换为年份和日历季度。例如,
Year      Quarter
2008      2008-Q1
2007      2007-Q3我可以使用以下命令获取第一列:
select left(date,4) as year from table 如何生成第二列?
发布于 2013-08-16 01:19:42
SELECT DATEPART(QUARTER, @date)这将返回@date的四分之一,假设@date是一个DATETIME。
发布于 2012-06-21 23:07:42
SELECT DATENAME(Quarter, CAST(CONVERT(VARCHAR(8), datecolumn) AS DATETIME))发布于 2013-07-10 23:53:18
我是这样做的。非常简短,并且不依赖于临时表。
CAST(year(TheDate) AS char(4)) + '-Q' + 
CAST(CEILING(CAST(month(TheDate) AS decimal(9,2)) / 3) AS char(1))举个例子:
SELECT convert(char(10), getdate(), 101) AS TheDate, 
CAST(year(getdate()) AS char(4)) + '-Q' + 
    CAST(CEILING(CAST(month(getdate()) AS decimal(4,2)) / 3) AS char(1)) AS SelectQuarter 这将返回:
TheDate    SelectQuarter
---------- -------------
07/10/2013 2013-Q3显然,字符串本身可以更改为适合您自己的格式。希望这能对你有所帮助。
https://stackoverflow.com/questions/11141100
复制相似问题