2016-08-09 5 views
1

Я пытаюсь преобразоватьПреобразование строки в Datetime2

@string='25/05/2016 09:00' 

к 2016-05-25 09:00.

@string является конкатенация @string2='25/05/2016' и @string3='09:00'

Когда я пытаюсь сделать это с помощью

CONVERT(datetime, '25/05/2016 09:00') 

Я получаю следующую ошибку

Преобразование типа VARCHAR данных в DateTime тип данных привел к превышению значения.

Пожалуйста, помогите, спасибо.

ответ

4

Попробуйте это:

SELECT CONVERT(datetime2, '25/05/2016 09:00', 103) 

Метод convert принимает 3 аргумента: первый является целевой тип данных, второе выражение для преобразования, а третий является стиль. В этом случае 103 обозначает формат даты в Великобритании или Франции, который равен dd/mm/yyyy.

Declare @string char(10)='25/05/2016' 
Declare @string2 char(5)='09:00' 

SELECT CONVERT(datetime2, @string + ' ' + @string2, 103) 

Результат: 2016-05-25 09:00:00.0000000 (datetime2)

0

благодарит marc_s для надевания моего запроса в правильном формате.

Я попытался это и получил ожидаемый результат, пожалуйста, сообщите, если есть какой-либо другой оптимальный способ, благодаря

`Declare @string varchar(20)='25/05/2016' 
Declare @string2 varchar(20)='09:00' 
Declare @string3 Varchar(20)=(SELECT Right(@string,4)+'-'+SUBSTRING(@string,4,2)+'-'+LEFT(@string,2)+' '[email protected]) 
Select CONVERT(datetime,@string3) as _datetime` 
+0

см. Мой отредактированный ответ. –

0

добавить это заявление, прежде чем конвертировать

SET DATEFORMAT DMY 

так запрос выглядеть следующим образом

SET DATEFORMAT DMY 

SELECT CONVERT(datetime, '25/05/2016 09:00') 
Смежные вопросы