在SQL中创建存储过程创建日期
我需要在SQL Server中创建一个存储过程,它将为我创建dim date 该过程将开始和结束日期作为值,并填充日期 我需要的专栏:在SQL中创建存储过程创建日期,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我需要在SQL Server中创建一个存储过程,它将为我创建dim date 该过程将开始和结束日期作为值,并填充日期 我需要的专栏: 日期代码为整数 日期名称为日期 月份为整数 四分之一为整数 年份为整数 假日为nvarchar/integer(我用我的假日表填充它) 作为nvarchar的一周中的一天 您已经尝试过什么?你可以在这里查看:我已经读过了,但无法理解和定制我需要的代码哇!很多TNX!!!!!!工作完美。下面的问题:如果我想根据我拥有的假日表填充假日列,我需要如何修改它?您可以使
- 日期代码为整数
- 日期名称为日期
- 月份为整数
- 四分之一为整数
- 年份为整数
- 假日为nvarchar/integer(我用我的假日表填充它)
- 作为nvarchar的一周中的一天
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'
*/