将sql server 2016中的日期从t格式转换为yyyymmdd格式

velaa5lx  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(348)

我在sql表中有一个日期列,其中的值以下面的格式存储。

2020-04-07T02:41:49

我需要得到yyyymmdd格式的日期,如下所示: 20200407 .
我尝试使用下面的语句,但它在转换时抛出了一个错误。

SELECT
    CONVERT(DATETIME, SUBSTRING(CAST('2020-04-07T02:41:49' AS varchar), 1, 8)) 

SELECT 
    LEFT(4, CAST('2020-04-05T08:05:47' AS nvarchar))

错误:
从字符串转换日期和/或时间时转换失败
有人能帮忙吗?
谢谢。

zaq34kh6

zaq34kh61#

你可以用 try_convert(date,...) 例子

Select WithFormat = format(try_convert(date,'2020-04-07T02:41:49'),'yyyyMMdd')
      ,OrNot      = convert(varchar(10),try_convert(date,'2020-04-07T02:41:49'),112)
      ,OrString   = replace(left('2020-04-07T02:41:49',10),'-','')

退货

WithFormat  OrNot      OrString
20200407    20200407   20200407

相关问题