Ich bin eine Datenbank wie so abfragen:anzeigen leere Zeichenkette, wenn Datumsfeld ist 1/1/1900
SELECT DISTINCT
CASE WHEN CreatedDate = '1900-01-01 00:00:00.000' THEN '' ELSE CreatedDate END AS CreatedDate
FROM LitHoldDetails
lhd.CreatedDate ist ein Datetime-Feld und ist nicht auf NULL festlegbare. Ich möchte eine leere Zeichenfolge anzeigen, wenn das Feld das Mindestdatum (1/1/1900) ist, aber meine CASE-Anweisung funktioniert nicht; CreatedDate zeigt 1900-01-01 00: 00: 00.000 in meiner Abfrage an, wenn sich dieser Wert in der Datenbank befindet. Ich verwende SQL Server 2008 R2. Was mache ich falsch?
Danke - ich bin nicht CreatedDate auf eine leere Zeichenfolge zu konvertieren versuchen, ich versuche, für seinen Wert und Ausgang entweder den Wert oder eine leere Zeichenfolge zu testen. Ich habe versucht, dies auch auf der Präsentationsebene zu tun, aber der Werttest funktioniert nicht. Wenn ich Ihre CASE-Anweisung versuche, bekomme ich immer noch 1900-01-01 00: 00: 00.000, wenn das Datum 1.1.1900 ist. – Melanie
@Melanie Aber Sie versuchen, eine leere Zeichenfolge in ein Datetime konvertieren, wenn Sie dies getan: 'Fall wenn etwas dann '' ELSE SomeDateTime END' – Lamak
@Melanie Ausgabe als String =' CONVERT' zu einer Zeichenfolge, auch wenn Sie didn sage nicht explizit 'CONVERT'. Sie können nicht einfach eine gültige "Datetime" in eine Zeichenfolge ändern. –