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')
等待更新...
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。