参数说明:
不带世纪数位 (yy) (1) | 带世纪数位 (yyyy) | 标准 | 输入/输出 (3) |
- | 0 或 100 (1,2) | 默 认 | mon dd yyyy hh:miAM(或 PM) |
1 | 101 | 美 国 | mm/dd/yyyy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | 英 国/法国 | dd/mm/yyyy |
4 | 104 | 德 国 | dd.mm.yy |
5 | 105 | 意 大利 | dd-mm-yy |
6 | 106(1) | - | dd mon yy |
7 | 107(1) | - | mon dd, yy |
8 | 108 | - | hh:mi:ss |
- | 9 或 109 (1,2) | 默 认设置 + 毫秒 | mon dd yyyy hh:mi:ss:mmmAM(或 PM) |
10 | 110 | 美 国 | mm-dd-yy |
11 | 111 | 日 本 | yy/mm/dd |
12 | 112 | ISO | yymmdd yyyymmdd |
- | 13 或 113 (1,2) | 欧 洲默认设置 + 毫秒 | dd mon yyyy hh:mi:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 或 120 (2) | ODBC 规范 | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 或 121 (2) | ODBC 规范(带毫秒) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126 (4) | ISO8601 | yyyy- mm-ddThh:mi:ss.mmm(无空格) |
- | 127(6, 7) | 带时区 Z 的 ISO8601。 | yyyy-mm-ddThh:mi:ss.mmmZ (无 空格) |
- | 130 (1,2) | 回历 (5) | dd mon yyyy hh:mi:ss:mmmAM |
- | 131 (2) | 回历 (5) | dd/mm/yy hh:mi:ss:mmmAM |
--CONVERT 与 DATEPART
--获取时分秒
SELECT CONVERT(VARCHAR(20),GETDATE(),108) AS '时分秒'
--11:24:59
--获得小时数
SELECT CONVERT(VARCHAR(2),GETDATE(),108) AS '时'
--11
--其实在获取小时数还有更好的办法
SELECT DATEPART(hh,GETDATE()) as 'Hour'
--11
--获取时分秒
SELECT CONVERT(VARCHAR(20),GETDATE(),108) AS '时分秒'
--11:24:59
--获得小时数
SELECT CONVERT(VARCHAR(2),GETDATE(),108) AS '时'
--11
--其实在获取小时数还有更好的办法
SELECT DATEPART(hh,GETDATE()) as 'Hour'
--11
三、获取前一天或者前一个月日期字符串
--方法一
--年月日
select convert(varchar(8),getdate()-1,112)
--年月
--?没有办法
--日
SELECT day(getdate()-1)
--方法二
--年月日
select convert(varchar(8),dateadd(day,-1,'2010-06-01 14:41:04.893'),112)
--年月
select convert(varchar(6),dateadd(month,-1,'2010-01-01 14:41:04.893'),112)
--日
select day(dateadd(dd,-1,'2010-06-01 14:41:04.893'))
--年月日
select convert(varchar(8),getdate()-1,112)
--年月
--?没有办法
--日
SELECT day(getdate()-1)
--方法二
--年月日
select convert(varchar(8),dateadd(day,-1,'2010-06-01 14:41:04.893'),112)
--年月
select convert(varchar(6),dateadd(month,-1,'2010-01-01 14:41:04.893'),112)
--日
select day(dateadd(dd,-1,'2010-06-01 14:41:04.893'))
四、获得当月天数
--获得当月天数
select day(dateadd(mm,1,getdate())-day(getdate()))
--分析如下:
select getdate() --当前日期
select day(getdate()) --目前第几天
select getdate()-day(getdate()) --上个月最后一天
select dateadd(mm,1,getdate())-day(getdate()) --加上一个月
select day(dateadd(mm,1,getdate())-day(getdate())) --获得当月天数
select day(dateadd(mm,1,getdate())-day(getdate()))
--分析如下:
select getdate() --当前日期
select day(getdate()) --目前第几天
select getdate()-day(getdate()) --上个月最后一天
select dateadd(mm,1,getdate())-day(getdate()) --加上一个月
select day(dateadd(mm,1,getdate())-day(getdate())) --获得当月天数
五、计算SQL的执行时间
--获取select * from TableName语句的执行时间
declare @timediff datetime
select @timediff=getdate()
select * from TableName
print '1耗时:'+ convert(varchar(10),datediff(ms,@timediff,getdate()))
declare @timediff datetime
select @timediff=getdate()
select * from TableName
print '1耗时:'+ convert(varchar(10),datediff(ms,@timediff,getdate()))