SQLServerDatetime类型转字符串(带格式)
⼀、回顾⼀下CONVERT()的语法格式: CONVERT (<data_ type="">[ length ], [, style])
⼆、这⾥注重说明⼀下style的含义:style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选⽤的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式;⼀般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才⽤到. 三、下表是SQL Server 系统提供的转换样式编号:
不带世纪数位 (yy)带世纪数位 (yyyy)标准输⼊/输出**
-0 或 100 (*)默认值mon dd yyyy hh:miAM(或 PM)
1101美国mm/dd/yyyy
dd
3103英国/法国dd/mm/yy
4104德国
5105意⼤利dd-mm-yy
6106-dd mon yy
7107-mon dd, yy
8108-hh:mm:ss
-9 或 109 (*)默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10110美国mm-dd-yy
11111⽇本yy/mm/dd
12112ISO yymmdd
-13 或 113 (*)欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h)
字符串截取 sql
14114-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(***)ISO8601yyyy-mm-dd Thh:(不含空格)
-130*Hijri**dd mon yyyy hh:mi:ss:mmmAM
-131*Hijri**dd/mm/yy hh:mi:ss:mmmAM
表中‘*‘表⽰的含义说明: * 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。 ** 当转换为 datetime时输⼊;当转换为字符数据时输出。 * 专门⽤于 XML。对于从 datetime或 smalldatetime 到 character 数据的转换,输出格式如表中所⽰。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。 ** Hijri 是具有⼏种变化形式的⽇历系统,Microsoft? SQL Server? 2000 使⽤其中的科威特算法。
四、不带世纪数位的实例代码(注释的表⽰⾮有效的样式号):
代码如下:
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 32SELECT CO
NVERT(varchar(100), GETDATE(), 0) AS Style0 SELECT CONVERT(varchar(100), GETDATE(), 1) AS Style1 SELECT CONVERT(varchar(100), GETDATE(), 2) AS Style2 SELECT CONVERT(varchar(100), GETDATE(), 3) AS Style3 SELECT CONVERT(varchar(100), GETDATE(), 4) AS Style4 SELECT CONVERT(varchar(100), GETDATE(), 5) AS Style5 SELECT CONVERT(varchar(100), GETDATE(), 6) AS Style6 SELECT CONVERT(varchar(100), GETDATE(), 7) AS Style7 SELECT CONVERT(varchar(100), GETDATE(), 8) AS Style8 SELECT CONVERT(varchar(100), GETDATE(), 9) AS Style9 SELECT CONVERT(varchar(100), GETDATE(), 10) AS Style10 SELECT CONVERT(varchar(100), GETDATE(), 11) AS Style11 SELECT CONVERT(varchar(100), GETDATE(), 12) AS Style12 SELECT CONVERT(varchar(100), GETDATE(), 13) AS Style13 SELECT CONVERT(varchar(100), GETDATE(), 14) AS Style14 --SELECT CONVERT(varchar(100), GETDATE(), 15) AS Style15 --SELECT CONVERT(varchar(100), GETDATE(), 16) AS Style16 --SELECT CONVERT(varchar(100), GETDATE(), 17) AS Style17 --SELECT CONVERT(varchar(100), GETDATE(), 18) AS Style18 --SELECT CONVERT(varchar(100), GETDATE(), 19) AS Style19 SELECT CONVERT(varchar(100), GETDATE(), 20) AS Style21 SELECT CONVERT(varchar(100), GETDATE(), 21) AS Style21 SELECT CONVERT(varchar(100), GETDATE(), 22) AS Style22 SELECT CONVERT(varchar(100), GETDATE(), 23) AS Style23 SELECT CONVERT(varchar(100), GETDATE(), 24) AS Style24 SELECT CONVERT(varchar(100), GETDATE(),
25) AS Style25 --SELECT CONVERT(varchar(100), GETDATE(), 26) AS Style26 --SELECT CONVERT(varchar(100), GETDATE(), 27) AS Style27 --SELECT CONVERT(varchar(100), GETDATE(), 28) AS Style28 --SELECT CONVERT(varchar(100), GETDATE(), 29) AS Style29 --SELECT CONVERT(varchar(100), GETDATE(), 30) AS Style30 --SELECT CONVERT(varchar(100), GETDATE(), 31) AS Style31
运⾏结果:
五、带世纪数位的实例代码(注释的表⽰⾮有效的样式号):代码如下:
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 29SELECT CONVERT(varchar(100), GETDATE(), 100) AS Style100 SELECT CONVERT(varchar(100), GETDATE(), 101) AS Style101 SELECT CONVERT(varchar(100), GETDATE(), 102) AS Style102 SELECT CONVERT(varchar(100), GETDATE(), 103) AS Style103 SELECT CONVERT(varchar(100), GETDATE(), 104) AS Style104 SELECT CONVERT(varchar(100), GETDATE(), 105) AS Style105 SELECT CONVERT(varchar(100), GETDATE(), 106) AS Style106 SELECT CONVERT(varchar(100), GETDATE(), 107) AS Style107 SELECT CONVERT(varchar(100), GETDATE(), 108) AS Style108 SEL
ECT CONVERT(varchar(100), GETDATE(), 109) AS Style109 SELECT CONVERT(varchar(100), GETDATE(), 110) AS Style110 SELECT CONVERT(varchar(100), GETDATE(), 111) AS Style111 SELECT CONVERT(varchar(100), GETDATE(), 112) AS Style112 SELECT CONVERT(varchar(100), GETDATE(), 113) AS Style113 SELECT CONVERT(varchar(100), GETDATE(), 114) AS Style114 --SELECT CONVERT(varchar(100), GETDATE(), 115) AS Style115 --SELECT CONVERT(varchar(100), GETDATE(), 116) AS Style116 --SELECT CONVERT(varchar(100), GETDATE(), 117) AS Style117 --SELECT CONVERT(varchar(100), GETDATE(), 118) AS Style118 --SELECT CONVERT(varchar(100), GETDATE(), 119) AS Style119 SELECT CONVERT(varchar(100), GETDATE(), 120) AS Style121 SELECT CONVERT(varchar(100), GETDATE(), 121) AS Style121 --SELECT CONVERT(varchar(100), GETDATE(), 122) AS Style122 --SELECT CONVERT(varchar(100), GETDATE(), 123) AS Style123 --SELECT CONVERT(varchar(100), GETDATE(), 124) AS Style124 --SELECT CONVERT(varchar(100), GETDATE(), 125) AS Style125 SELECT CONVERT(varchar(100), GETDATE(), 126) AS Style126 SELECT CONVERT(varchar(100), GETDATE(), 127) AS Style127 --SELECT CONVERT(varchar(100), GETDATE(), 128) AS Style128
30 31 32--SELECT CONVERT(varchar(100), GETDATE(), 129) AS Style129 SELECT CONVERT(varchar(100), GETDATE(), 130) AS Style130 SELECT CONVERT(varchar(100), GETDATE(), 131) AS Style131
运⾏结果:
SQL将datetime转化为字符串并截取字符串
复制代码代码如下:
1select sr_child as '孩⼦姓名', sr_parents as '家长姓名' ,ss_updatetime as '分配时间', left(ss_updatetime,CHARINDEX(' ',ss_updatetime)-1),SUBSTRING(CONVERT(CHAR(19), ss_updatetime, 120),1,10)as '转换格式并截取后的时间'
sql 中字符串截取函数: SUBSTRING(name,start,end) name:字符串格式的字段名 start:规定开始位置(起始值是 1) end:截取字符串结束的位置
sql 中Datetime格式转换为字符串格式: 2000-01-01 01:01:01(Datetime) CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)
CURRENT_TIMESTAMP:当前时间(此处可以写Datetime格式的字段名,例如ss_updatetime)其余的参数(CHAR(19), 120等)不⽤修改使⽤之后 2000-01-01
01:01:01(Datetime)变为 2000-01-01 01:01:01(字符串格式)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。