mysql日期格式转换,如何保持原日期?CONVERT/Substring 函数截取。replace替换

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

原文地址:https://www.cnblogs.com/xyao1/p/7484957.html