2010-11-18 5 views
0

Ist es möglich, eine Funktion wie DATEADD() oder DATEEPART() für eine varchar-Spalte zu verwenden, die möglicherweise etwas enthält, das wie Datetime aussieht?Verwenden einer Datumsfunktion für eine Spalte mit unterschiedlichen Typen

Momentan versuche ich dies, indem ich eine WHERE-Klausel verwende, um nur Zeilen auszuwählen, die datetime-Werte in dieser Spalte haben und den üblichen arithmetischen Überlauffehler erhalten.

Ich könnte eine Operation ausführen, um nur die Datetime-Werte zu extrahieren und sie in eine temporäre Tabelle zu schreiben, aber ich bin neugierig.

Beispiel

SELECT DATEPART(wk, DateCreated) FROM tblOrders WHERE colType = 'datetime' 

über den Tisch Design nicht Sorge tun, ist es nicht so schlecht, wie das.

Antwort

6

Mach dir keine Sorgen über das Tischdesign, es ist nicht so schlimm.

scheint unwahrscheinlich, aber ...

Verwenden IsDate

+0

Ein kleiner Stempel und eine eine richtige Antwort in nur drei Zeilen ... :-) –

+0

ich nicht einmal daran gedacht, mit IsDate(). Trotzdem konnte ich DATEPART() für die Spalte in meiner WHERE-Klausel nicht verwenden. Hat die Temp-Table-Route sowieso beendet, weil, wie sich herausstellt, das Tabellendesign härter saugt, als ich ursprünglich erkannte. Redigierte auch meinen Beitrag nach einiger Frustration bei der Erstellung eines Berichts heute. – Ciaran

Verwandte Themen