技术开发 频道

简单实用SQL脚本Part:日期和时间函数

    【IT168 技术文档】一、SQL Server 日期函数集合

--参考http://msdn.microsoft.com/zh-cn/library/ms186724.aspx
--1:获取系统日期和时间值函数
--getdate()
SELECT GETDATE() AS 'today'
--getutcdate()
SELECT GETUTCDATE() AS 'today'


--2:修改日期和时间值函数
--dateadd()
SELECT DATEADD(yy,10,GETDATE())
--获取当前天的前后五天日期:
select DATEADD(dd,5,GETDATE())
select DATEADD(dd,-5,GETDATE())
--2008? switchoffset
--SELECT SWITCHOFFSET ('1998-09-20 7:45:50.71345 -5:00', '-08:00')
--2008? todatetimeoffset


--3:获取日期和时间差函数
--datediff()
SELECT DATEDIFF(yy,'1984/5/3',GETDATE())
--正常使用
SELECT DATEDIFF(HOUR,'1984/5/3',GETDATE())
--转换成正数(负负得正)
SELECT DATEDIFF(MONTH,GETDATE(),'1984/5/3')*-1


--4:获取日期和时间部分的函数
--datepart()返回表示指定date的指定datepart的整数:int
SELECT DATEPART(yy,GETDATE()),DATEPART(yyyy,GETDATE()) as 'year'
SELECT DATEPART(mm,GETDATE()),DATEPART(m,GETDATE()) as 'month'
SELECT DATEPART(dd,GETDATE()),DATEPART(d,GETDATE()) as 'day'
SELECT DATEPART(hh,GETDATE()) as 'Hour'
SELECT DATEPART(mi,GETDATE()),DATEPART(n,GETDATE()) as 'minute'
SELECT DATEPART(ss,GETDATE()),DATEPART(s,GETDATE()) as 'second'
SELECT DATEPART(ms,GETDATE()) as 'millisecond'
--others
SELECT DATEPART(DW,GETDATE()),DATEPART(dw,GETDATE()),DATEPART(w,GETDATE()) as 'weekday'--一周中的第几天
SELECT DATEPART(weekday, getdate() + @@DateFirst - 1)--中国星期算法中一周中的星期几
SELECT DATEPART(weekday, getdate() - 1)--中国星期算法中一周中的星期几
SELECT DATEPART(ww,GETDATE()),DATEPART(wk,GETDATE()) as 'week'--?
SELECT DATEPART(dy,GETDATE()),DATEPART(y,GETDATE()) as 'dayofyear'--一年中的第几天
SELECT DATEPART(qq,GETDATE()),DATEPART(q,GETDATE()) as 'quarter'--季度
SELECT DATEPART(qq,'2010-03-21'),DATEPART(q,'2010-04-01') as 'quarter'
--年(yy),季(q),月(m),周(ww),时期(w),天(d),时(hh),分(n),秒(s)

--②datename()返回表示指定日期的指定datepart的字符串:nvarchar
SELECT DATENAME(weekday,GETDATE())--星期三
SELECT DATENAME(WW, GETDATE())--?

--year(),相当于 datepart(yy,时间)
SELECT YEAR(GETDATE())

--month(),相当于datepart(mm,时间)
SELECT MONTH(GETDATE())

--day(),相当于datepart(dd,时间)
SELECT DAY(GETDATE())
SELECT DAY('1984/5/3')


--5:验证日期和时间值的函数
SELECT ISDATE('04/15/2008'); --Returns 1.
SELECT ISDATE('15/04/2008'); --Returns 0.

--2008?
--SELECT CONVERT (date, GETDATE());
--SELECT CONVERT (time, GETDATE());

 

  参数说明:

1
 

0
相关文章