--本週第一天
select
dateadd(day,1
-(datepart(weekday,getdate())+
@@datefirst
-1)%
7,getdate
())
--or
select
dateadd(wk, datediff(wk,0,getdate()), 0
) --
本週第一天
select
dateadd(wk, datediff(wk,0,getdate()), 6
)
--上月第一天
select
convert(char(10),dateadd(month,-
1,dateadd(dd,-
day(getdate())+
1,getdate())),111
) --
上月最後一天
select
convert(char(10),dateadd(ms,-
3,dateadd(mm, datediff(mm,0,getdate()),0)),111)+
'23:59:59'--
本月第一天
select
dateadd(dd,-
datepart(dd,getdate())+
1,getdate
())
--本月最後一天
select
dateadd(dd,-
datepart(dd,getdate()) ,dateadd(mm,1,getdate
()))
--本月天數
select
datediff(dd,dateadd(dd,-
datepart(dd,getdate())+
1,getdate()), dateadd(dd,-
datepart(dd,getdate())+
1,dateadd(mm,1,getdate
())))
--or
select
datepart(dd,dateadd(dd,-
1,dateadd(mm,1,cast(cast(year(getdate()) as
varchar)+'-
'+cast(month(getdate()) as
varchar)+
'-01'as
datetime
))))
--下月第一天
select
dateadd(dd,-
datepart(dd,getdate())+
1,dateadd(mm,1,getdate
()))
--下月最後一天
select
convert(char(10),dateadd(ms,-
3,dateadd(mm,datediff(m,0,getdate())+
2,0)),111)+
'23:59:59'--
季度第一天
select
dateadd(qq, datediff(qq,0,getdate()), 0
)
--季度最後一天(直接推算法)
select
dateadd(day,-
1,convert(char(8),dateadd(month,1
+datepart(quarter,getdate())*3-
month(getdate()),getdate()),120)+'1
')
--季度的最後一天(case判斷法)
select
dateadd(month,datepart(quarter,getdate())*3-
month(getdate()),getdate
())
--本月第乙個星期一
select
dateadd(wk, datediff(wk, '', dateadd(dd, 6
-day(getdate()), getdate())), ''
)
--去年最後一天
select
dateadd(ms,-
3,dateadd(yy, datediff(yy,0,getdate()), 0
))
--今年第一天
select
dateadd(yy, datediff(yy,0,getdate()), 0
)
--今年最後一天
select
dateadd(ms,-
3,dateadd(yy, datediff(yy,0,getdate())+
1,0))
--指定日期所在周的任意一天
select
dateadd(day,@number
-datepart(weekday,@dt),@dt)--
5.指定日期所在周的任意星期幾
--a. 星期天做為一周的第1天
select
dateadd(day,@number
-(datepart(weekday,@dt)+
@@datefirst
-1)%
7,@dt
) --
b. 星期一做為一周的第1天
select
dateadd(day,@number
-(datepart(weekday,@dt)+
@@datefirst
-2)%7-
1,@dt
) --
-週內的第幾日
select
datepart(weekday,getdate()) as
週內的第幾日
--年內的第幾周
select
datepart(week,getdate()) as
年內的第幾周
--年內的第幾季
select
datepart(quarter,getdate()) as
年內的第幾季
--判斷某天是當月的第幾周的sql函式
create
function weekofmonth(@day
datetime
)
returns
intas
begin
----declare @day datetime
declare
@num
intdeclare
@start
datetime
declare
@ddint
declare
@dayofweek
char(8
) declare
@dayofweek_num
char(8
) declare
@startweekdays
int--
-set @day='2009-07-05'
ifdatepart(dd,@day)=
1return
1else
set@start
= (select
dateadd(mm, datediff(mm,0,@day), 0)) --
乙個月第一天的
set@dayofweek
= (datename(weekday,@start)) --
-得到本月第一天是週幾
set@dayofweek_num
=(select (case
@dayofweek
when
'星期一
'then
2when
'星期二
'then
3when
'星期三
'then
4when
'星期四
'then
5when
'星期五
'then
6when
'星期六
'then
7when
'星期日
'then
1end
))
set@dayofweek_num=7
-@dayofweek_num+1
---得到本月的第一周一共有幾天
---print @dayofweek_num
set@dd
=datepart(dd,@day) --
--得到今天是這個月的第幾天
--print @dd
if@dd
<=
@dayofweek_num
--小於前一周的天數
return
1else
set@dd
=@dd
-@dayofweek_num
if@dd%7
=0begin
set@num
=@dd/7
return
@num+1
endelse
--if @dd % 7<>0
set@num
=@dd/7
set@num
=@num+1
+1return
@num
end
SQL日期常用函式
1.顯示本月第一天 select dateadd mm,datediff mm,0,getdate 0 select convert datetime,convert varchar 8 getdate 120 01 120 2.顯示本月最後一天 select dateadd day,1,conve...
SQL常用日期函式
原文 1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.dated...
SQL日期函式及應用
select year getdate as 年份 select month getdate as 月份 select datename year getdate as 年份 select datename month getdate as 月份 select datename weekday ge...