我需要在年份和季度中显示分配成员资格。我使用SQL Server 2012的如何在T-SQL中将一行中的时间范围拆分为不同行中的不同季度
的数据是这样的:
CREATE TABLE MyTable
(
MyGroup nvarchar(10) NULL,
StartTime nvarchar(10) NULL,
EndTime nvarchar (10) NULL,
Quantity int NULL
)
Insert into MyTable
Values ('a', '7/1/2014', '6/30/20116', '10'),
('b', '12/1/2013', '11/30/2014', '8')
期望的结果:
MyGroup StartTime EndTime Year Quarter Quantity
a 7/1/2014 6/30/2016 2014 2014-Q3 10
a 7/1/2014 6/30/2016 2014 2014-Q4 10
a 7/1/2014 6/30/2016 2015 2015-Q1 10
a 7/1/2014 6/30/2016 2015 2015-Q2 10
a 7/1/2014 6/30/2016 2015 2015-Q3 10
a 7/1/2014 6/30/2016 2015 2015-Q4 10
a 7/1/2014 6/30/2016 2016 2016-Q1 10
a 7/1/2014 6/30/2016 2016 2016-Q2 10
b 12/1/2013 11/30/2014 2013 2013-Q4 8
b 12/1/2013 11/30/2014 2014 2014-Q1 8
b 12/1/2013 11/30/2014 2014 2014-Q2 8
b 12/1/2013 11/30/2014 2014 2014-Q3 8
你应该类型的列['DATE'](https://msdn.microsoft.com/en-us/library/bb630352.aspx),而不是使用'VARCHAR'被存储日期。如果你不这样做(你应该真的),至少将你的日期存储为'YYYYMMDD'。 –