首页 > 解决方案 > 在 SQL 中创建存储过程创建暗日期

问题描述

我需要在 SQL Server 中创建一个存储过程,它将为我创建昏暗的日期。

该过程将获取开始和结束日期作为值并填充日期。

我需要的列:

标签: sqlsql-serverstored-procedures

解决方案


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'
*/

推荐阅读