http://www.cnblogs.com/stevenjson/p/3729577.html
CONVERT(varchar(100), getdate(), 112)这种,
问题就出在getdate()上,他会把无论什么日期都给改成系统的时间,原日期都没了,怎么保持原日期不变又改变格式啊?
用:SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 获取系统时间
CONVERT(varchar(12),e.birth,112) AS birth 20170819 获取数据库表值的原日期
e.brith---原列名,birth--新列名
1、用convert函数转换日期格式
--多种日期格式类比
select CONVERT(varchar, getdate(), 120 )
--2018-03-12 10:25:20
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
--20180312102734
Select CONVERT(varchar(100), GETDATE(), 112)+CONVERT(varchar(100), GETDATE(), 108)
--2018031210:28:24
sql 里怎么把varchar转成datetime格式
https://zhidao.baidu.com/question/1049328386625505619.html
首先,要确定varchar格式内的数据是否符合datetime的数据格式。
其次,如果varchar数据只是部分为datetime数据,则要先截取其中符合条件的字符,再进行转换。
再次,通过CAST函数进行转换示例:
1)假设varchar数据为'2016-05-02 12:00:12 fdas';
2)根据数据显示,不能直接转换,需要利用字符截取函数SUBSTRING;
3)转换:
select cast(substring('2016-05-02 12:00:12 fdas',1,19)
as datetime) as varcharTOdatetime
二、substring ,该函数用截取一个字符串的字串,在Oracle中求字符串的函数为:substr
substr( string, start_position, [ length ] )
string:源字符串
start_position:子串第一个字符在源字符串中的起始位置
length:子串长度
测试结果:substr('2011-11-17',0,7)
2011-11
sql replace()转换2018-03-12 10:25:20为20180312102734datetime格式
--多种日期格式类比
select CONVERT(varchar, getdate(), 120 )
2018-03-12 10:25:20
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20180312102734