2012-03-28 11 views
1

Eine dumme Software von Drittanbietern, die wir verwenden, speichert Datetime als varchar aus einem guten alten Grund und ich muss es als sql datetime analysieren. Das Problem ist, wenn die Zeichenfolge in mm/tt/jj Format Ebene CAST() als datetiem funktioniert gut, aber meine Daten als TT/MM/JJ formatiert und CAST wirft eineTSQL: Konvertieren varchar 'TT/MM/JJ' in DATETIME

Die Umwandlung eines Datentypen Varchar zu einem Datetime-Datentyp Ergebnis in einem Wert außerhalb des Bereichs.

Ausnahme. Tipps, um es mit CONVERT oder CAST ohne Verwendung von RECHTS()/LEFT() usw. zu tun?

Dank

Antwort

1

Eine Option wäre SET DATEFORMAT Einstellung von SQL Server zu verwenden, bevor die Konvertierungen durchführen. z.B.

-- Set date format to day/month/year. 
SET DATEFORMAT dmy; 
GO 

DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567'; 
SELECT @datevar; 
GO