Ich habe eine ältere SQL Server 2000-Datenbank, die eine Spalte hat, die ein Datum hat, das aus irgendeinem Grund als varchar statt als datetime gespeichert ist. Ich möchte eine Ansicht für diese Daten erstellen und ein datetime-Feld anstelle eines varchar-Feldes verwenden, um die Erstellung eines Berichts für dieses Feld zu vereinfachen. Die gute Nachricht ist, dass Die meisten der Werte sehen so aus, als ob sie direkt in eine Datetime umgewandelt werden könnten.
Natürlich gibt es offensichtlich einige Felder, die so eingegeben wurden, dass sie nicht in datetime umgewandelt werden können. Der Klarheit halber könnte die Tabelle folgendermaßen aussehen:
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
Und die Ansicht könnte etwa so aussehen:
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
Gibt es eine Möglichkeit, wie ich das tun kann?
- Eine Liste aller Zeilen erhalten, in denen das Geburtsdatum nicht in ein Datum umgewandelt werden kann, damit ich es reparieren kann?
- In Fällen, in denen ich den Wert nicht reparieren kann, lassen Sie den Wert als NULL oder vielleicht sogar als etwas, das offensichtlich ist, erscheinen pas das tatsächliche Geburtsdatum des Benutzers?