sql—如何编写查询以将nvarchar转换为日期

ecr0jaav  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(518)

我有一个表,其中只有一列包含日期和字符串值。如何编写查询将字符串转换为日期值?
usercomment :

comment
----------
02/22/2020
03/22/2020
Nochange
04/22/2020
userreviw

期望输出:

comment
-----------
2020-02-22
2020-03-22
Nochange
2020-04-22
userreviw
7y4bm7vi

7y4bm7vi1#

Select CASE 
         ISDATE(myColumn) WHEN 1 THEN CONVERT(nvarchar(10), CONVERT(datetime, myColumn, 101), 120)
         ELSE myColumn 
       end
From myTable
4xy9mtcn

4xy9mtcn2#

尝试使用 TRY_CONVERT :

SELECT
    COALESCE(TRY_CONVERT(varchar(10),
                         TRY_CONVERT(datetime, col, 101),
                         120), col) AS col_as_date
FROM yourTable;

第一次调用中的格式掩码101 TRY_CONVERT 对应于日期格式 mm/dd/yyyy ,当数据具有有效日期时,它与您的数据匹配。对于无效值,例如 comment , TRY_CONVERT 会回来的 NULL . 然后,我们打电话 TRY_CONVERT 用掩码120生成文本日期的格式 yyyy-mm-dd .

相关问题