SQLSERVER使用小总结之–时间转换
相信很多初学者会有这样的烦恼,就是在进行数据类型转换的时候很麻烦,花费了很多时间去各种搜索,百度,结果就是得不到你要的数据类型,特别是时间类型和时间格式的字符串类型进行转换。我在19年刚开始着手sqlserver的工作的时候也是这样的烦恼,花了很多时间,各种折腾,就是没有得到自己想要的,最终功夫不负有心人,对于20年的我来说相对得心应手了,现在给大家分享下我的一些心得。
首先明白数据的类型
在进行转换的时候要明白你的数据是怎样的类型,甚至长度的大小是多少。原因呢,其实很简单,明白了数据类型之后,你就可以很好地进行转换,长度的大小主要是为了防止由于长度过短,造成转换后数据显示不全,也就是所说的数据少了,或者专业 的说法就是只显示相应长度的字符串,其他的没显示出来吧。
接下来,给大家罗列下在进行时间的转换的时候要注意、或者要先弄清楚其他主要的问题:
1. 数据转换的函数有哪些:
cast()
cast(字段 as 要改成的数据类型)
convert()
convert(要改成的数据类型,字段)
这两个函数也是我个人用的比较多的函数。
2.时间类型:
一般SQL Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间。平时使用的也就这几种类型。
3.时间的字符串格式
时间大概有如下的字符串显示格式:
CONVERT(varchar, getdate(), 120 ) -- 2013-02-17 13:37:54
replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') -- 20130217133828
CONVERT(varchar(12) , getdate(), 111 ) -- 2013/02/17
CONVERT(varchar(12) , getdate(), 112 ) -- 20130217
CONVERT(varchar(12) , getdate(), 102 ) --2013.02.17
CONVERT(varchar(12) , getdate(), 101 ) --02/17/2013
CONVERT(varchar(12) , getdate(), 103 ) --17/02/2013
CONVERT(varchar(12) , getdate(), 104 ) --17.02.2013
CONVERT(varchar(12) , getdate(), 105 ) --17-02-2013
CONVERT(varchar(12) , getdate(), 106 ) --17 02 2013
CONVERT(varchar(12) , getdate(), 107 ) --02 17, 2013
CONVERT(varchar(12) , getdate(), 108 ) --13:42:50
CONVERT(varchar(12) , getdate(), 109 ) --02 17 2013
CONVERT(varchar(12) , getdate(), 110 ) --02-17-2013
CONVERT(varchar(12) , getdate(), 113 ) --17 02 2013 1
CONVERT(varchar(12) , getdate(), 114 ) --13:42:24:743
真正的转换
例子如下:
Select convert(varchar(100),CONVERT(datetime, ‘2019-01-31 17:51:19’, 20),23)
备注:先转换成时间类型datetime,再转换成自己要的格式。
也就是先把字符串转换成时间格式的字符串,然后再根据自己要的时间格式再做最后的显示。
最后:时间格式的转换就完成了,希望小编的处女之作可以对你有所有帮助!也希望能够和大家一起进步,期待各位的留言哦!