Sql server 将不带破折号和冒号的varchar datetime转换为带破折号和冒号的varchar datetime
我想把这个Sql server 将不带破折号和冒号的varchar datetime转换为带破折号和冒号的varchar datetime,sql-server,Sql Server,我想把这个20201001163318varchar日期和时间转换成类似这样的2020-10-01 16:33:18 我试过这个 select convert(varchar, getdate(), 25) 但是它不起作用可能是stuff()与try\u convert() 示例 declare @S varchar(50) = '20201001163318' Select try_convert(varchar(19),try_convert(datetime,stuff(stuff(
20201001163318
varchar
日期和时间转换成类似这样的2020-10-01 16:33:18
我试过这个
select convert(varchar, getdate(), 25)
但是它不起作用可能是stuff()
与try\u convert()
示例
declare @S varchar(50) = '20201001163318'
Select try_convert(varchar(19),try_convert(datetime,stuff(stuff(stuff(@S,13,0,':'),11,0,':'),9,0,' ')),120)
返回
(No column name)
2020-10-01 16:33:18
另外,如果要将getdate()转换为字符串,可以尝试:
Select convert(varchar(19),getdate(),120)
convert(varchar,getdate(),25)
将从getdate()
返回的值(这是datetime
,不是varchar
)转换为varchar
格式的样式代码25,即yyyy-mm-dd hh:mi:ss.mmm
。希望这不是数据库中的一列;如果是,我强烈建议您修改设计,不要将日期存储在varchar
中。如果该值来自应用程序,我建议重新评估代码,并确保传递的是日期和时间数据类型,而不是varchar
。