Как преобразовать дату 15 мая-2019 в SQL в 2019/05/15 с помощью PATINDEX - PullRequest
0 голосов
/ 25 октября 2019

Мне нужно конвертировать дату в SQL. Дата как 15-May-2019 и должна отображаться как 2019/05/15.

Это код, который у меня есть до сих пор

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

Я не совсем уверен, как использовать Patindex. Может кто-нибудь помочь мне исправить это?

Ответы [ 3 ]

2 голосов
/ 25 октября 2019

Я бы порекомендовал просто преобразовать в тип данных date:

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

Если вы хотите использовать косую черту, вместо этого вы можете создать строку:

select replace(convert(varchar(10), try_convert(date, '15-May-2019'), 120), '-', '/')
0 голосов
/ 25 октября 2019

PATINDEX немного перебор.

Попробуйте:

SELECT FORMAT(
      TRY_PARSE('15-May-2019' AS DATE USING 'en-US')
, 'yyyy/MM/dd')
  • TRY_PARSE анализирует строку в DATE с использованием English культуры.
  • FORMAT предназначен для точного управления выводом
0 голосов
/ 25 октября 2019

Используйте приведенный ниже код, и вы можете ссылаться на ссылку для других форматов. https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

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