SQL Server 生成日期列表代码
2022-11-12 09:54:35
内容摘要
这篇文章主要为大家详细介绍了SQL Server 生成日期列表代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
if exists (sele
文章正文
这篇文章主要为大家详细介绍了SQL Server 生成日期列表代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <code> if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[f_getdate]' ) and xtype in (N 'FN' , N 'IF' , N 'TF' )) drop function [dbo].[f_getdate] GO create function [dbo].[f_getdate] ( @year int, --要查询的年份 @bz bit --@bz=0 查询工作日,@bz=1 查询休息日,@bz IS NULL 查询全部日期 ) RETURNS @re TABLE( Date datetime,Weekday nvarchar(3)) as begin DECLARE @tb TABLE(ID int , Date datetime) insert @tb select number, dateadd(day,number,DATEADD(Year,@YEAR-1900, '1900-1-1' )) from master..spt_values where type= 'P' and number between 0 and 366 DELETE FROM @tb WHERE Date >DATEADD(Year,@YEAR-1900, '1900-12-31' ) IF @bz=0 INSERT INTO @re( Date ,Weekday) SELECT Date ,DATENAME(Weekday, Date ) FROM @tb WHERE (DATEPART(Weekday, Date )+@@DATEFIRST-1)%7 BETWEEN 1 AND 5 ELSE IF @bz=1 INSERT INTO @re( Date ,Weekday) SELECT Date ,DATENAME(Weekday, Date ) FROM @tb WHERE (DATEPART(Weekday, Date )+@@DATEFIRST-1)%7 IN (0,6) ELSE INSERT INTO @re( Date ,Weekday) SELECT Date ,DATENAME(Weekday, Date ) FROM @tb RETURN end go select * from dbo.[f_getdate]( '2009' ,0) </code> |
注:关于SQL Server 生成日期列表代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释