'2003-01-07 15:21:14.953'认为是CHAR型,不是DATETEIM型。
比较
select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),11)select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',11)
比较
select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),11)select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',11)
我运行
select DATEADD(ss,1,'2003-01-07 15:21:14.953')
出来还是
2003-01-07 15:21:15.953
阿
怎么再convert一下就没了后面的?
sqlserver2000中,是下一句输出'.953' ,而不是上一句。
返回的是日期型
'2003-01-07 15:21:14.953' 是CAHR
比較:
select CONVERT(VARCHAR(23),getdate(),120)
select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',120)
看来和机器环境很有关系
我的结果如下,win2000ads+sql2000select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),120)
2003-01-07 15:21:15select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',120)
2003-01-07 15:21:14.953select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),11)
03/01/07select CONVERT(VARCHAR(23),'2003-01-07 15:21:14.953',11)
2003-01-07 15:21:14.953
select CONVERT(VARCHAR(23),getdate(),120)select CONVERT(VARCHAR(58),getdate(),120)
convert, 11
出来格式
11 111 日本 yy/mm/dd convert 120
出来格式
20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss 至于那些没有dateadd的,当作字符串处理,当然是进去什么就出来什么了
select CONVERT(VARCHAR(23),DATEADD(ss,1,'2003-01-07 15:21:14.953'),121)
不带世纪数位(yy) 带世纪数位(yyyy) 标准 输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM