2016-08-09 111 views
1

Ich versucheString zu datetime2 Konvertieren

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

zu 2016-05-25 09:00 zu konvertieren.

@string ist Verkettung von @string2='25/05/2016' und @string3='09:00'

Wenn ich versuche, dies zu tun mit

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

bekomme ich folgende Fehler

Die Umwandlung eines varchar Datentypen Datetime Datentyp ergab einen Wert außerhalb des Bereichs.

Bitte helfen, danke.

Antwort

4

Diese Versuchen:

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

convert Die Methode nimmt 3 Argumente: Die erste ist die Zieldatentyp, die zweite ist die Expression zu konvertieren, und der dritte ist der Stil. In diesem Fall steht 103 für britisches oder französisches Datumsformat, also dd/mm/yyyy.

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

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

Ergebnis: 2016-05-25 09:00:00.0000000 (datetime2)

0

dank marc_s für meine Abfrage im richtigen Format setzen.

habe ich versucht, diese und bekam das erwartete Ergebnis, raten Sie bitte, ob es eine andere optimal ist dank

`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

sehe meine bearbeitete Antwort. –

0

diese Anweisung hinzufügen, bevor

konvertieren
SET DATEFORMAT DMY 

so aussehen Abfrage wie diese

SET DATEFORMAT DMY 

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