某年第一周开始日期

你想获取某一年份第一周开始的日期,Insus.NET给你的答案,可以参考使用下面这个函数:http://www.cnblogs.com/insus/articles/1622988.html

SELECT  [ StartDate ]  FROM  [ dbo ]. [ udf_Week ]( 2012, 2012WHERE  [ Week ]  =  1

 

上面SQL语句执行结果:

 

但你还是觉得此方法很复杂,而且只需要日期部分,时间部分无需显示。因此Insus.NET更改并产生如下一个新函数,你把函数附加入你的数据库中,即可在程序中应用它了。

ExpandedBlockStart.gif udf_StartDateOfFirstWeek
SET ANSI_NULLS  ON
GO
SET QUOTED_IDENTIFIER  ON
GO

CREATE  FUNCTION udf_StartDateOfFirstWeek 
(
     @Year  INT
)
RETURNS DATE
AS
BEGIN
     DECLARE  @StartDate DATE  =  CAST(( CAST( @Year  AS  VARCHAR( 4))  +  ' -01-01 'AS DATE)      
     RETURN 
         CASE  WHEN ( DATEPART(DW, @StartDate>  4
         THEN  DATEADD( DAY,( 8  -  DATEPART(DW, @StartDate)) , @StartDate)
         ELSE  DATEADD( DAY,( -( DATEPART(DW, @StartDate) - 1)), @StartDate)
         END
END
GO

 

函数执行Demo:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值