广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    MSSQL 生成日期列表代码

    2018-05-08 11:29:08 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    代码如下:

    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)

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告