如何使用 PATINDEX 将 SQL 中的日期 15-May-2019 转换为 2019/05/15

How to convert a date 15-May-2019 in SQL to 2019/05/15 using PATINDEX

我需要转换 SQL 中的日期。日期是 15-May-2019,它应该显示为 2019/05/15

这是我目前的代码

CASE WHEN WHEN LEN(AgeGroup) > 1 THEN PATINDEX ('%[A-Z]%', date)

我不太确定如何使用 Patindex。有人可以帮我解决这个问题吗?

我建议只转换为 date 数据类型:

select try_convert(date, '15-May-2019')

如果你想用斜线,你可以生成一个字符串:

select replace(convert(varchar(10), try_convert(date, '15-May-2019'), 120), '-', '/')

使用下面的代码,其他格式可以参考linkhttps://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

SELECT CONVERT(varchar,(cast('15-may-2019' as date)), 111)

PATINDEX 有点矫枉过正。

尝试:

SELECT FORMAT(
      TRY_PARSE('15-May-2019' AS DATE USING 'en-US')
, 'yyyy/MM/dd')
  • TRY_PARSE 使用 English 文化将字符串解析为 DATE。
  • FORMAT就是精确控制输出