MSSQL 生成日期列表代碼
更新時間:2009年09月28日 18:05:48 作者:
MSSQL 生成日期列表的代碼,需要的朋友可以參考下。
復制代碼 代碼如下:
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)
相關文章
SQL Server誤區(qū)30日談 第19天 Truncate表的操作不會被記錄到日志
這個誤區(qū)也同樣流傳已久,我想是時候通過一些Demo進行揭穿了2013-01-01
如何快速刪掉SQL Server登錄時登錄名下拉列表框中的選項
本文給大家分享如何快速刪掉SQL Server登錄時登錄名下拉列表框中的選項,包括問題原因分析和解決方案,非常不錯,需要的朋友參考下吧2016-11-11
SQL server數據庫創(chuàng)建代碼 filegroup文件組修改的示例代碼
這篇文章主要介紹了SQL server數據庫創(chuàng)建代碼 filegroup文件組修改的實現方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
MS SQL Server STUFF實現統(tǒng)計記錄行轉為列顯示
SQL語句行轉列函數是一種用于將多個行數據轉換為一列的函數,本文主要介紹了MS SQL Server STUFF實現統(tǒng)計記錄行轉為列顯示,具有一定的參考價值,感興趣的可以了解一下2024-04-04
SqlServer實現類似Oracle的before觸發(fā)器示例
本節(jié)主要介紹了SqlServer如何實現類似Oracle的before觸發(fā)器,需要的朋友可以參考下2014-08-08

