SQL 语句 时间的计算 月、周

SQL 语句

取一周的第一天:
set datefirst 1   一周以星期一为第一天
select  dateadd(day,-datepart(dw,getdate())+1,getdate())

取一周的最后一天
set datefirst 1  一周以星期一为第一天
select     dateadd(day,-datepart(dw,dateadd(wk,1,getdate())),dateadd(wk,1,getdate()))

创建函数

本周的第一天

-----------------------------
--取@curdate所在星期的第一天
-----------------------------
ALTER                FUNCTION uf_w_firstDay(@curdate datetime) 
RETURNS varchar(10) AS 
BEGIN
 declare @firstDay varchar(10)       
 select @firstDay = dateadd(day,-datepart(dw,@curdate)+1,@curdate)
 return @firstDay
END

本周的最后一天

-----------------------------
--取@curdate所在星期的最后一天
-----------------------------

ALTER          FUNCTION uf_w_endDay(@curdate datetime) 
RETURNS varchar(10) AS 
BEGIN
 declare @curdate2 datetime
 declare @endDay varchar(10)
 select @curdate2 = dateadd(wk,1,@curdate)
 select @endDay = dateadd(day,-datepart(dw,@curdate2),@curdate2)
 return @endDay
END

本月的第一天

----------------------------
--取@curdate所在月份的第一天
----------------------------
ALTER    FUNCTION uf_firstDay(@curdate datetime) 
RETURNS varchar(10) AS 
BEGIN
 declare @firstDay varchar(10)
 select @firstDay = LTRIM(str(year(@curdate))) +'-'+ LTRIM(str(month(@curdate))) +'-'+ '01'
 return @firstDay
END

本月的最后一天

----------------------------
--取@curdate所在月份的最后一天
----------------------------
ALTER    FUNCTION uf_endDay(@curdate datetime) 
RETURNS varchar(10) AS 
BEGIN
 declare @curdate2 datetime
 declare @endDay varchar(10)
 select @curdate2 = dateadd(month,1,@curdate)
 select @endDay = LTRIM(str(year(@curdate))) +'-'+ LTRIM(str(month(@curdate))) +'-'+ LTRIM(str(day(dateadd(day,-day(@curdate2),@curdate2))))
 return @endDay
END

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值