2017-07-19 4 views
0

Ich habe eine Spalte stocked als nvarchar(50) enthält Daten dieses Formats ('yyyy/mm/dd'), ich möchte es bis heute zu konvertieren, damit ich einige datadds tun kann, um weitere Vergleiche zu machen.SQL-Server konvertieren eine Spalte von String nach Datum

Nichts, was ich bisher gesehen habe gearbeitet hat (war viel über Würfe und wandelt) und immer in Sachen wie, dass in Folge:

„Msg 242, Ebene 16, Status, 3 Leitung 1 Die Konvertierung eines Varchar-Datentyps in einen Datetime-Datentyp führte zu einem Wert außerhalb des Bereichs. "

+0

Erste Datenbank Design Fehler: _Ich habe eine Spalte als nvarchar (50) mit Datumsangaben _ Ändern der Spalte zu einem Datum sein – RiggsFolly

+0

mysql oder SQL-Server? –

+0

Verwenden Sie [STR_TO_DATE] (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date) –

Antwort

0

Verwenden

ISDATE (expression)

Ergibt 1, wenn der Ausdruck ein gültiges Datum, Uhrzeit, bzw. Datums-Wert; sonst, 0.

1

Höchstwahrscheinlich haben Sie Daten, die nicht richtig konvertiert werden können. Sie können eine Abfrage verwenden, wie unten die Probleme Daten zu sehen (das funktioniert in SQL Server 2012 und höher)

declare @tableName table(stocked nvarchar(50)); 
insert into @tableName values 
('2017/12/31'),('2017/11/11'),('2017/11/13'),('2017/13/11'); 
SET DATEFORMAT ymd; 

select 
stocked, 
TRY_PARSE(stocked as datetime) 
from @tableName 
where TRY_PARSE(stocked as datetime) is NULL; 
0

Basicly ich eine Excel-Tabelle hatte, die ich in SQL Server 2014 eingeführt wird, nicht verwalten die konvertierten Daten bis zum Datum an der Einfügung, aber ich denke, es würde weniger ein Schmerz sein, auf die Art der Insertion zu arbeiten, als es später konvertieren