表中有一列是
ret_period
,包含
数据类型。我试图写一个查询,将列的数据类型从varchar转换为日期数据类型,但当从字符串转换日期和/或时间时,它抛出一个错误,即转换失败。
varchar
谁能让我知道如何解决这个问题? 以下是该列的样本数据。
ret_period
012018
012019
012020
你可以将字符串转换为可以转换/转换为DATE的格式。
select * , TRY_CAST(CONCAT(RIGHT(ret_period, 4),'-',LEFT(ret_period, 2),'-01') AS DATE) AS ret_date from (values ('012018'), ('012019'), ('012020') ) q(ret_period)
但是请注意,
格式应该比yyyyMMDD
更安全,因为它在将其转换为DATETIME时不依赖于语言。yyyy-MM-DD
或者使用
函数DATEFROMPARTS