代码改变世界

SQL 日期操作函数

2010-08-14 19:39  音乐让我说  阅读(405)  评论(0编辑  收藏  举报

代码如下:

 

select dateDiff(month,'2010-03-01','2010-05-31')	--参数:1.表示日期部分	2.表示开始日期	3.表示结束日期		结果为:2

select dateDiff(month,'2010-03-01','2009-05-31')	--结果为:-10

select dateDiff(year,'2009-01-01','2010-12-31')		--结果为:1

select datediff(day,'2004-09-01','2004-09-18')		--结果为:17	(!!!!!!注意)


select dateDiff(m,0,'1901-01-01')	--返回12

select dateAdd(m,12,0)	--返回1901-01-01 00:00:00	即1900-01-01 00:00:00 的月份加12个月

select dateAdd(m,12,5)  --返回1901-01-06 00:00:00	即1900-01-01 00:00:00 的月份加12个月,日加上5天


------------------------------------------------------------------------------------------------------------

select dateAdd(month,5,'2010-02-15')				--参数:1.表示日期部分	2.表示要增加的数量	3.要操作的日期	结果为:2010-07-15 00:00:00.000

select dateAdd(month,-5,'2010-02-15')				--结果为:2009-09-15 00:00:00.000

------------------------------------------------------------------------------------------------------------

select dateName(weekday,'2004-10-15')				--结果为:星期五

select dateName(week,'2010-01-03')					--结果为:2,本年第几周			

select convert(varchar(20),getdate(),23)			--结果为:2010-03-09			

select convert(varchar(20),getdate(),108)			--结果为:09:44:39

------------------------------------------------------------------------------------------------------------

select dateDiff(wk,0,'1900-01-01')						--结果为0,说明1900-01-01是记录以来的第一周

select dateAdd(wk,dateDiff(wk,0,getdate()),0)			--是求本周一的日期和时间

select dateAdd(wk,dateDiff(wk,0,getdate()),6)			--是求本周日的日期和时间

select convert(varchar(20),dateAdd(wk,dateDiff(wk,0,getdate()),0),23)			--是求本周一的日期

select convert(varchar(20),dateAdd(wk,dateDiff(wk,0,getdate()),6),23)			--是求本周日的日期

select convert(varchar(20),getdate(),23) + '_' + convert(varchar(2),datepart(hour,getdate())) + '-' + convert(varchar(2),datepart(minute,getdate())) + '-' + convert(varchar(2),datepart(second,getdate()))   -- 结果为:2010-07-30_15-11-42


--统计本周过生日的人数,提示本周是从星期一开始的
select count(Id) 
from HRUserInfo
where dateAdd(year,dateDiff(year,userBirthday,getDate()),userBirthday)
    between dateAdd(day,(dateDiff(day,0,getDate())/7*7),0) 
         and dateAdd(day,(dateDiff(day,0,getDate())/7*7),0) + 6;

--统计本周过生日的人数,提示本周是从星期天开始的
select count(Id) 
from HRUserInfo
where dateAdd(year,dateDiff(year,userBirthday,getDate()),userBirthday)
    between dateAdd(day,(dateDiff(day,0,getDate())/7*7)-1,0) 
         and dateAdd(day,(dateDiff(day,0,getDate())/7*7)-1,0) + 6;





set nocount on


--查询日期月包含的天数
CREATE FUNCTION DaysInMonth ( @date datetime ) Returns int
AS
BEGIN
RETURN Day(dateadd(mi,-3,DATEADD(m, DATEDIFF(m,0,@date)+1,0)))
END
go
select dbo.DaysInMonth('2010-02-01')



 

等待更新...