Der leistungsfähigste Weg, DateTime in das Int-Format zu konvertieren

8

Ich muss Datetime-Felder in einen speziell formatierten INT-Typ konvertieren. Zum Beispiel möchte ich   2000-01-01 00:00:00.000 in 20010101 konvertieren.

Was ist der performanteste Weg, diese Konvertierung für den Vergleich in einer Abfrage durchzuführen?

Etwas wie:

%Vor%

oder

%Vor%

Was ist der performanteste Weg, dies zu tun?

    
DavidStein 01.09.2010, 16:30
quelle

3 Antworten

19

Ihr Beispiel von cast(convert(char(8), orderdate, 112) as int) scheint mir gut zu sein. Das Datum wird schnell auf das benötigte Format heruntergezählt und in ein int umgewandelt.

Aus Sicht des Ausführungsplans scheint es keinen Unterschied zwischen den beiden zu geben.

    
LittleBobbyTables 01.09.2010, 16:37
quelle
-1

Ist das, was Sie brauchen

%Vor%     
Abdallah 01.09.2010 16:34
quelle
-2

Wenn Sie "2010-01-01 00: 00: 00.000" direkt in Ihrem Code übergeben, betrachtet die SELECT-Anweisung sie als Zeichenfolge und nicht als Datetime-Datentyp. Es ist nicht dasselbe wie ein Datetime-Feld direkt auszuwählen.

Es ist nicht notwendig, äußere CAST auszuführen, da SQL Server implizite Konvertierung durchführt, hier ist ein Beweis.

%Vor%     
Abdallah 01.09.2010 16:47
quelle

Tags und Links