我需要在SQL Server中创建一个存储过程,该存储过程将为我创建暗淡的日期。
该过程将获取开始日期和结束日期作为值,并填充日期。
我需要的列:
答案 0 :(得分:1)
CREATE or ALTER PROCEDURE sp_date(@start_date date, @end_date date)
AS
BEGIN
SELECT cast(convert(varchar, cast( d as date ) , 112) as int ) [date code],
cast( d as date ) [date name],
month( d ) [month],
datename(qq, d) [quarter],
year( d ) [year],
NULL [holiday],
datename(weekday, d) [day of the week]
into dbo.datetable
FROM ( SELECT d = DATEADD(DAY, rn - 1, @start_date)
FROM ( SELECT TOP (DATEDIFF(DAY, @start_date, @end_date))
rn = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
FROM sys.all_objects AS s1
CROSS JOIN sys.all_objects AS s2
ORDER BY s1.[object_id]
) AS x
) AS y;
END
GO
/*
Parameters:
@start_date = 'YYYY-MM-DD'
@end_date = 'YYYY-MM-DD'
*/