sql时间格式SQLServer日期函数集合--1:获取系统日期和时间值函数--getdate()SELECTGETDATE()AS'today'--getutcdate()SELECTGETUTCDATE()AS'today'--2:修改日期和时间值函数--dat--参考:获取系统日期和时间值函数--getdate()SELECTGETDATE()AS'today'--getutcdate()SELECTGETUTCDATE()AS'today'--2:修改日期和时间值函数--dateadd()SELECTDATEADD(yy,10,GETDATE())--获取当前天的前后五天日期:selectDATEADD(dd,5,GETDATE())selectDATEADD(dd,-5,GETDATE())--2008?switchoffset--SELECTSWITCHOFFSET('1998-09-207:45:50.71345-5:00','-08:00')--2008?todatetimeoffset--3:获取日期和时间差函数--datediff()SELECTDATEDIFF(yy,'1984/5/3',GETDATE())--正常使用SELECTDATEDIFF(HOUR,'1984/5/3',GETDATE())--转换成正数(负负得正)SELECTDATEDIFF(MONTH,GETDATE(),'1984/5/3')*-1--4:获取日期和时间部分的函数--①datepart()返回表示指定date的指定datepart的整数:intSELECTDATEPART(yy,GETDATE()),DATEPART(yyyy,GETDATE())as'year'SELECTDATEPART(mm,GETDATE()),DATEPART(m,GETDATE())as'month'SELECTDATEPART(dd,GETDATE()),DATEPART(d,GETDATE())as'day'SELECTDATEPART(hh,GETDATE())as'Hour'SELECTDATEPART(mi,GETDATE()),DATEPART(n,GETDATE())as'minute'SELECTDATEPART(ss,GETDATE()),DATEPART(s,GETDATE())as'second'SELECTDATEPART(ms,GETDATE())as'millisecond'--othersSELECTDATEPART(DW,GETDATE()),DATEPART(dw,GETDATE()),DATEPART(w,GETDATE())as'weekday'--一周中的第几天SELECTDATEPART(weekday,getdate()+@@DateFirst-1)--中国星期算法中一周中的星期几SELECTDATEPART(weekday,getdate()-1)--中国星期算法中一周中的星期几SELECTDATEPART(ww,GETDATE()),DATEPART(wk,GETDATE())as'week'--?SELECTDATEPART(dy,GETDATE()),DATEPART(y,GETDATE())as'dayofyear'--一年中的第几天SELECTDATEPART(qq,GETDATE()),DATEPART(q,GETDATE())as'quarter'--季度SELECTDATEPART(qq,'2010-03-21'),DATEPART(q,'2010-04-01')as'quarter'--年(yy),季(q),月(m),周(ww),时期(w),天(d),时(hh),分(n),秒(s)--②datename()返回表示指定日期的指定datepart的字符串:nvarcharSELECTDATENAME(weekday,GETDATE())--星期三SELECTDATENAME(WW,GETDATE())--?--③year(),相当于datepart(yy,时间)SELECTYEAR(GETDATE())--④month(),相当于datepart(mm,时间)SELECTMONTH(GETDATE())--⑤day(),相当于datepart(dd,时间)SELECTDAY(GETDATE())SELECTDAY('1984/5/3')--5:验证日期和时间值的函数SELECTISDATE('04/15/2008');--Returns1.SELECTISDATE('15/04/2008');--Returns0.--2008?--SELECTCONVERT(date,GETDATE());--SELECTCONVERT(time,GETDATE());参数说明:日期部分缩写yearyy,yyyyquarterqq,qmonthmm,mdayofyeardy,ydaydd,dweekwk,和Time样式--语句及查询结果:SELECTCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSELECTCONVERT(varchar(100),GETDATE(),1):05/16/06SELECTCONVERT(varchar(100),GETDATE(),2):06.05.16SELECTCONVERT(varchar(100),GETDATE(),3):16/05/06SELECTCONVERT(varchar(100),GETDATE(),4):16.05.06SELECTCONVERT(varchar(100),GETDATE(),5):16-05-06SELECTCONVERT(varchar(100),GETDATE(),6):160506SELECTCONVERT(varchar(100),GETDATE(),7):0516,06SELECTCONVERT(varchar(100),GETDATE(),8):10:57:46SELECTCONVERT(varchar(100),GETDATE(),9):0516200610:57:46:827AMSELECTCONVERT(varchar(100),GETDATE(),10):05-16-06SELECTCONVERT(varchar(100),GETDATE(),11):06/05/16SELECTCONVERT(varchar(100),GETDATE(),12):060516SELECTCONVERT(varchar(100),GETDATE(),13):1605200610:57:46:937SELECTCONVERT(varchar(100),GETDATE(),14):10:57:46:967SELECTCONVERT(varchar(100),GETDATE(),20):2006-05-1610:57:47SELECTCONVERT(varchar(100),GETDATE(),21):2006-05-1610:57:47.157SELECTCONVERT(varchar(100),GETDATE(),22):05/16/0610:57:47AMSELECTCONVERT(varchar(100),GETDATE(),23):2006-05-16SELECTCONVERT(varchar(100),GETDATE(),24):10:57:47SELECTCONVERT(varchar(100),GETDATE(),25):2006-05-1610:57:47.250SELECTCONVERT(varchar(100),GETDATE(),100):0516200610:57AMSELECTCONVERT(varchar(100),GETDATE(),101):05/16/2006SELECTCONVERT(varchar(100),GETDATE(),102):2006.05.16SELECTCONVERT(varchar(100),GETDATE(),103):16/05/2006SELECTCONVERT(varchar(100),GETDATE(),104):16.05.2006SELECTCONVERT(varchar(100),GETDATE(),105):16-05-2006SELECTCONVERT(varchar(100),GETDATE(),106):16052006SELECTCONVERT(varchar(100),GETDATE(),107):0516,2006SELECTCONVERT(varchar(100),GETDATE(),108):10:57:49SELECTCONVERT(varchar(100),GETDATE(),109):0516200610:57:49:437AMSELECTCONVERT(varchar(100),GETDATE(),110):05-16-2006SELECTCONVERT(varchar(100),GETDATE(),111):2006/05/16SELECTCONVERT(varchar(100),GETDATE(),112):20060516SELECTCONVERT(varchar(100),GETDATE(),113):1605200610:57:49:513SELECTCONVERT(varchar(100),GETDATE(),114):10:57:49:547SELECTCONVERT(varchar(100),GETDATE(),120):2006-05-1610:57:49SELECTCONVERT(varchar(100),GETDATE(),121):2006对上面进行动态生成字符串:declare@sql1nvarchar(200),@sql2nvarchar(200)declare@countnvarchar(100);set@sql1='SELECTCONVERT(varchar(100),GETDATE(),0)'set@sql2='SELECT@count=CONVERT(varchar(100),GETDATE(),0)'execsp_executesql@sql2,N'@countnvarchar(50)out',@countoutprint@sql1+':'+@count--SQLServer仅保证往返转换(即从原始数据类型进行转换后又返回原始数据类型的转换)在各版本间产生相同值。DECLARE@myvaldecimal(5,2)SET@myval=193.57SELECTCAST(CAST(@myvalASvarbinary(20))ASdecimal(10,5))--Or,usingCONVERTSELECTCONVERT(decimal(10,5),CONVERT(varbinary(20),@myval))--输出193.57000--输出193.57000--bigint数据类型的字段截取(其它类型也一样)selectsubstring(CONVERT(varchar(15),字段名),11,9)from表名selectsubstring(cast(字段名asvarchar(50),6,9))from表名不带世纪数位(yy)(1)带世纪数位(yyyy)标准输入/输出(3)-0或100(1,2)默认monddyyyyhh:miAM(或PM)1101美国mm/dd/yyyy2102ANS