SQL 日期操作函数
2010-08-14 19:39 音乐让我说 阅读(405) 评论(0) 编辑 收藏 举报代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 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/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步