SQL СЕРВЕР получает дату и время из настраиваемой отформатированной строки - PullRequest
0 голосов
/ 07 августа 2020

У меня есть таблица, содержащая некоторые значения DateTime, хранящиеся в виде текста, и я хочу l oop через них и получить объект DateTime для каждого из них.

Вот несколько примеров данных, которые я необходимо преобразовать его.

  • 26, вторник, ноябрь 2019 г. - 09:00
  • 25, понедельник, ноябрь 2019 г. - 11:20
  • 06, пятница, декабрь 2019 г. - 10 : 00
  • 22, воскресенье декабря 2019 - 13:05
  • 22, воскресенье декабря 2019 - 16:00
  • 22, воскресенье декабря 2019 - 14:30
  • 23, понедельник, декабрь 2019 г. - 11:00

Я пытался использовать встроенные функции SQL (например, приведение, преобразование, ...), но не сработало.

1 Ответ

1 голос
/ 07 августа 2020

Удалите название дня недели и дефис, и все должно работать:

WITH cte
AS
(
SELECT DATENAME(weekday,datefromparts(2020,1,dow.dow)) as WeekDay
FROM (values (1),(2),(3),(4),(5),(6),(7) ) dow(dow)
)

SELECT TRY_CAST(REPLACE(REPLACE(t.dateInTxt,'-',''),cte.WeekDay,'') as datetime),t.dateInTxt
FROM mytable t
JOIN cte
ON t.dateInTxt LIKE '%'+cte.WeekDay +'%'
...