Was ist die allgemeine Anleitung, wann Sie im CAST
Vergleich zu verwenden sollten CONVERT
? Gibt es Leistungsprobleme im Zusammenhang mit der Auswahl eines gegenüber dem anderen? Ist man näher an ANSI-SQL?
quelle
Was ist die allgemeine Anleitung, wann Sie im CAST
Vergleich zu verwenden sollten CONVERT
? Gibt es Leistungsprobleme im Zusammenhang mit der Auswahl eines gegenüber dem anderen? Ist man näher an ANSI-SQL?
CONVERT
ist SQL Server-spezifisch, CAST
ist ANSI.
CONVERT
ist flexibler, da Sie Daten usw. formatieren können. Abgesehen davon sind sie ziemlich gleich. Wenn Sie sich nicht für die erweiterten Funktionen interessieren, verwenden SieCAST
.
BEARBEITEN:
Wie von @beruic und @CF in den Kommentaren unten angegeben, kann es zu Genauigkeitsverlusten kommen, wenn eine implizite Konvertierung verwendet wird (dh wenn Sie weder CAST noch CONVERT verwenden). Weitere Informationen finden Sie unter CAST und CONVERT und insbesondere in dieser Grafik: SQL Server-Datentypkonvertierungstabelle . Mit diesen zusätzlichen Informationen bleibt der ursprüngliche Rat unverändert. Verwenden Sie nach Möglichkeit CAST.
Convert verfügt über einen Stilparameter für die Konvertierung von Datum in Zeichenfolge.
http://msdn.microsoft.com/en-us/library/ms187928.aspx
quelle
CAST ist Standard-SQL, CONVERT jedoch nur für den Dialekt T-SQL. Wir haben einen kleinen Vorteil für die Konvertierung im Fall von datetime.
Mit CAST geben Sie den Ausdruck und den Zieltyp an. Bei CONVERT gibt es ein drittes Argument, das den Stil für die Konvertierung darstellt und für einige Konvertierungen unterstützt wird, z. B. zwischen Zeichenfolgen und Datums- und Zeitwerten. Beispielsweise konvertiert CONVERT (DATE, '1/2/2012', 101) die Literalzeichenfolge in DATE unter Verwendung des Stils 101, der den US-Standard darstellt.
quelle
Um die obige Antwort von Shakti zu erweitern , konnte ich tatsächlich einen Leistungsunterschied zwischen den beiden Funktionen messen.
Ich habe die Leistung von Variationen der Lösung für diese Frage getestet und festgestellt, dass die Standardabweichung und die maximalen Laufzeiten bei der Verwendung größer waren
CAST
.* Zeiten in Millisekunden, gerundet auf die nächste 1 / 300stel Sekunde gemäß der Genauigkeit des
DateTime
Typsquelle
Etwas, das noch niemand bemerkt zu haben scheint, ist die Lesbarkeit. Haben…
… Kann leichter zu verstehen sein als…
quelle
CAST(Column1 AS int)
ist logischer zu lesen alsCONVERT(int, Column1)
auch für lange AusdrückeCAST verwendet den ANSI-Standard. Im Falle der Portabilität funktioniert dies auf anderen Plattformen. CONVERT ist spezifisch für SQL Server. Ist aber sehr starke Funktion. Sie können verschiedene Stile für Datumsangaben angeben
quelle