Значение вне допустимого диапазона при преобразовании дат, разделенных точками - PullRequest
0 голосов
/ 08 января 2020

Как я могу преобразовать следующие VARCHAR(50) данные:

01.01.2020 06:10:15

в DateTime?

Ответы [ 4 ]

1 голос
/ 08 января 2020

Попробуйте ниже код:

select convert(datetime, '01.01.2020 06:10:15', 104)

Справка Ссылка

1 голос
/ 08 января 2020

Предполагая, что даты имеют формат dd.mm.yyyy, вы можете использовать стиль даты и времени # 104 (немецкий), который использует этот точный формат:

SELECT CONVERT(DATETIME, '13.01.2020 06:10:15')
-- The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

SELECT CONVERT(DATETIME, '13.01.2020 06:10:15', 104)
-- 2020-01-13 06:10:15.000
0 голосов
/ 08 января 2020

Вы можете достичь этим путем

Declare @Str VARCHAR(50) = '01.01.2020 06:10:15'

Select CONVERT(date, REPLACE(@Str, '.', '/'), 103)
0 голосов
/ 08 января 2020

Вы можете попробовать следующий метод:

 SELECT CONVERT(datetime, '2017-08-25')

вместо даты в выделенных кавычках вы можете поместить имя переменной.

...