在实际数据库引用中,可能会出现使用varchar类型存储时间(如:2014-01-02)或者存储年月(如:2014-02),但在做数据查询的时候,可能会通过日期大小的比较来查询数据。这时我们需要通过数据库的内置函数将varchar类型转成datetime类型后进行比较。
Convert函数
函数说明
CONVERT(<data_type(length)>, <data_to_be_converted>, <style>)
data_type:目标数据类型,可选长度;例如:varchar(20)
data_to_be_converted:需要转换的值
style:输出格式
可以使用的style值
Style ID | Style 格式 |
---|---|
100 或者 0 | mon dd yyyy hh:miAM (或者 PM) |
101 | mm/dd/yy |
102 | yy.mm.dd |
103 | dd/mm/yy |
104 | dd.mm.yy |
105 | dd-mm-yy |
106 | dd mon yy |
107 | Mon dd, yy |
108 | hh:mm:ss |
109 或者 9 | mon dd yyyy hh:mi:ss:mmmAM(或者 PM) |
110 | mm-dd-yy |
111 | yy/mm/dd |
112 | yymmdd |
113 或者 13 | dd mon yyyy hh:mm:ss:mmm(24h) |
114 | hh:mi:ss:mmm(24h) |
120 或者 20 | yyyy-mm-dd hh:mi:ss(24h) |
121 或者 21 | yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 | yyyy-mm-ddThh:mm:ss.mmm(没有空格) |
130 | dd mon yyyy hh:mi:ss:mmmAM |
131 | dd/mm/yy hh:mi:ss:mmmAM |
例子
varchar转datetime
select convert(datetime,'2014-01' + '-02',121)
结果:2014-01-01 00:00:00.000
datetime转varchar
select convert(varchar(20),GETDATE(),111)
结果:2015/01/28