In diesem Artikel werden wir Grundlagen und alle Details zu SQL Server-Datentypkonvertierungsvorgängen diskutieren und lernen und außerdem die integrierten SQL CONVERT-und TRY_CONVERT-Funktionen mit verschiedenen Beispielen überprüfen. Zuerst werden wir die Syntax der SQL-Konvertierungsfunktion erklären und klären und dann lernen, wie wir die Datenkonvertierung numerischer und Datums – /Zeitdatentypen in Zeichendaten durchführen können.,
Implizit vs explizit
Das Ändern des Datentyps eines Werts in einen anderen Datentyp wird als Datentypkonvertierung bezeichnet, und fast alle Programmiersprachen enthalten eine Art von Datenkonvertierungsfunktionen oder-funktionen. Wenn wir unsere Perspektive auf SQL Server umstellen, um Details zu SQL – Datenkonvertierungsvorgängen zu besprechen, können wir den Datenkonvertierungsprozess zunächst in zwei Teile aufteilen.implizite und explizite Konvertierungen., Implizite Konvertierung wird von SQL Server für interne Anforderungen durchgeführt und Sie können auch zusätzliche Details im Artikel Implizite Konvertierung in SQL Server finden. Die explizite Konvertierung wird explizit von einem Datenbankprogrammierer oder-administrator durchgeführt und gleichzeitig wird dieser Konvertierungsprozess mit Hilfe einer beliebigen Datenkonvertierungsfunktion durchgeführt. In diesem Artikel konzentrieren wir uns insbesondere auf die SQL-Konvertierungsfunktion. Diese Funktion bietet eine Möglichkeit, einen Datentyp in einen anderen angegebenen Datentyp zu konvertieren. Zunächst werden wir die Syntax der SQL-Konvertierungsfunktion interpretieren.,
Syntax
1
|
CONVERT (Datentyp (Länge), Ausdruck, Stil)
|
data_type: Dieser Parameter definiert den zu konvertierenden Zieldatentyp. der Parameter data_type kann diese Datentypen als Eingabe verwenden, die in der folgenden Array-Liste angezeigt werden.
length: Dies ist ein optionaler Parameter, der die Länge des Zieldatentyps angibt., Der Standardwert dieses Parameters ist 30.
Ausdruck: Dieser Parameter gibt den Wert an, den wir in einen anderen Datentyp konvertieren möchten.
style: Dies ist ein Integer-Parameter, der den Ausgabestil des konvertierten Werts angibt. Dieser Wert ist für Datumsdatentypformate nützlicher.
Nun werden wir diese theoretische Anleitung mit verschiedenen praktischen Beispielen vertiefen.
Convert Float to Int
In diesem Beispiel konvertieren wir einen float-Datentyp integer., In der folgenden Abfrage deklarieren wir eine Variable, deren Datentyp float ist, und verwenden dann die SQL-Konvertierungsfunktion, um den Float-Wert in eine Ganzzahl zu konvertieren, sodass wir eine Datenkonvertierungsoperation durchführen.,
1
2
3
4
5
6
|
–Deklarieren einer Float-Variablen
ANGABE VON @FloatVal ALS Float
–Weisen Sie der Variablen
SET @FloatVal = 1132 einen Float-Wert zu.,12345
– Konvertieren von float-Wert in int
SELECT CONVERT(int, @FloatVal) ALS ConvertedValue
|
Konvertieren, Float, Varchar
In diesem Beispiel konvertieren wir einen float-Wert zu varchar-Wert. Dieses Beispiel ist dem vorherigen sehr ähnlich, aber der einzige Unterschied besteht darin, dass wir den Float-Wert in varchar konvertieren.,
1
2
3
4
5
6
|
–Deklarieren einer Float-Variablen
ANGABE VON @FloatVal ALS Float
–Weisen Sie der Variablen
SET @FloatVal = 1132 einen Float-Wert zu.,12345
–Convert float value to varchar
SELECT CONVERT(varchar, @FloatVal) AS ConvertedValue
|
Im folgenden Beispiel senden wir keinen Wert an den length-Parameter des SQL CONVERT-Funktion so Länge Parameter muss auf Standardwert gesetzt werden. Wie bereits in der Syntaxerklärung der SQL-Konvertierungsfunktion erwähnt, ist dieser Standardwert 30 und jetzt werden wir dies beweisen., In der folgenden Abfrage erstellen wir eine temporäre Tabelle, fügen einen konvertierten Wert in diese Tabelle ein und analysieren dann die Datenstruktur dieser Tabelle.,
1
2
3
4
5
6
7
8
9
10
|
TABELLE LÖSCHEN, FALLS VORHANDEN TestConvertedTable
–Deklarieren einer Float-Variablen
ANGABE VON @FloatVal ALS Float
–Weisen Sie der Variablen
FloatVal = 1132.,12345
– Konvertieren von float-Wert varchar
SELECT CONVERT(varchar, @FloatVal) ALS ConvertedValue IN TestConvertedTable
— Analysieren Sie die temporäre Tabelle
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.,SPALTEN, IN DENEN TABLE_NAME= ‚TestConvertedTable‘
|
Wie Sie im obigen Bild sehen können, wurde der Float-Datentyp in den varchar-Wert konvertiert und wir haben den length-Parameter nicht festgelegt, sodass SQL Server den Standardwert des length-Parameters als 30 anwendet.
Jetzt setzen wir den Parameter length der SQL-Konvertierungsfunktion und überprüfen dann die Länge des Datentyps varchar erneut.,
1
2
3
4
5
6
7
8
9
10
|
TABELLE LÖSCHEN, FALLS VORHANDEN TestConvertedTable
–Deklarieren einer Float-Variablen
ANGABE VON @FloatVal ALS Float
–Weisen Sie der Variablen
FloatVal = 1132.,12345
– Konvertieren von float-Wert varchar
SELECT CONVERT(varchar(20), @FloatVal) ALS ConvertedValue IN TestConvertedTable
— Analysieren Sie die temporäre Tabelle
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.SPALTEN, IN DENEN TABLE_NAME= ‚TestConvertedTable‘
|
Geld in Varchar konvertieren
Der Datentyp SQL Server money hilft beim Speichern von Geldwerten., Wir können Währungswerte definieren, denen ein Währungssymbol vorangestellt ist SQL Server speichert jedoch keine Währungssymbole oder Daten, die sich auf das Währungssymbol beziehen. In der folgenden Abfrage konvertieren wir den Gelddatentyp in varchar und verwenden auch den Stilparameter der SQL-Konvertierungsfunktion. Mit Hilfe des style-Parameters können wir Kommatrennzeichen und die Länge der richtigen Dezimalstelle bestimmen. Die folgende Tabelle zeigt den Stilparameterwert und die Ausgabe der SQL-Konvertierungsfunktion.,
Value |
Style Parameter |
Comma Delimiter |
Right decimal digit |
Output |
no |
||||
yes |
4,936.,56 |
|||
nein |
Konvertieren Sie Float und Real in Varchar
Float und real datentypen sind ungefähre numerische Datentypen in SQL Server, was bedeutet, dass diese Datentypen keine genauen Werte speichern. Sie speichern eine sehr enge Annäherung an den gespeicherten Wert. Nun werden wir die ungefähre Konzeption des numerischen Datentyps erklären., In der folgenden Abfrage erstellen wir eine Tabelle mit zwei Spalten, deren Datentypen float und real sind, und fügen dann einige numerische Werte ein. Eigentlich haben wir zweistellige Zahlen in der Tabelle erwartet, aber der Real-und Float-Datentyp speichert die Werte, die den erwarteten Werten am nächsten kommen.
Die folgende Tabelle wird aus Microsoft Docs zitiert und diese Tabelle erklärt den Konvertierungsstil der Float-und Real-Datentypen in Textdaten.,
Tipp: Wissenschaftliche Notation ist eine spezielle Methode, um sehr große oder kleine Zahlen auszudrücken, die hauptsächlich in der Wissenschaft verwendet werden.
Wert |
Ausgang |
0 (standard) |
Maximal 6 ziffern. Wird gegebenenfalls in wissenschaftlicher Notation verwendet. |
Immer 8-stellig. Immer in wissenschaftlicher Notation verwendet. |
|
Immer 16-stellig. Immer in wissenschaftlicher Notation verwendet. |
|
Immer 17-stellig. Verwenden Sie für verlustfreie Konvertierung., Bei diesem Stil wird garantiert, dass jeder eindeutige Float-oder Realwert in eine eindeutige Zeichenfolge konvertiert wird. |
Zeigen wir nun ein Beispiel, das alle Datenkonvertierungsstile gemäß dieser Tabelle enthält.
Wie Sie oben sehen können, zeigt die Ergebnismenge, dass der Stilparameter die Ausgabe der SQL-Konvertierungsfunktion ändert.
Datum/Uhrzeit in Varchar konvertieren
Datum/Uhrzeit-Formate können je nach Gebietsschema-Einstellungen variieren und aus diesem Grund benötigen wir verschiedene Formate, um Datum / Uhrzeit darzustellen., Stellen Sie sich vor, dass Sie eine Anwendung und verschiedene Länder Benutzer diese Anwendung verwenden, so dass, wenn jemand diese Anwendung in den USA verbindet, müssen Sie das Datum als Monat/Tag/Jahr-Format darstellen. Auf der anderen Seite verbindet ein anderer Benutzer diese Anwendung in Großbritannien und Sie müssen das Datumsformat als Tag/Monat/Jahr-Format darstellen. In diesem Fall müssen wir das Datum / die Uhrzeit bestimmen, die den Stil gemäß der Datums – /Uhrzeiteinstellung darstellt. sp_helplanguage stored procedure gibt unterstützte Sprachen mit detaillierten Informationen in SQL Server zurück.,
Zusätzlich können wir die Sprache für die Sitzung bestimmen und auf diese Weise können wir Datums – /Zeitfunktionen an bestimmte Sprache anpassen. In der folgenden Abfrage setzen wir die Sprache auf Polnisch und sehen dann die Änderung des Monats-und Tagesnamens entsprechend dem polnischen Gebietsschema.
Tipp: Wenn Sie eine multinationale Anwendungsdatenbank entwerfen, speichern Sie die UTC-Zeit (Coordinated Universal Time) in der Regel in einer Spalte, damit Sie Datums – /Zeitprobleme aufgrund lokaler Einstellungen vermeiden können.,nach deutschem Standard können wir folgende Abfrage verwenden:
1
|
SELECT GETDATE() AS, CONVERT(Varchar(50), GETDATE (), 104) AS
|
In der folgenden Cheat-Tabelle finden Sie jede Verwendungskombination von Stilparametern und dem gesamten Ausgabeformat der SQL CONVERT () – Funktion für Datums – /Zeit-zu-Zeichendatenkonvertierungen.,
ow, wir werden diese Cheat-Tabelle mit allen Kombinationen für die SQL GETDATE-Funktion demonstrieren, damit wir den Einfluss des Style-Parameters auf die SQL CONVERT-Funktionsausgaben herausfinden können.
Nun werden wir einige Punkte erwähnen, die wir über die Datums – /Zeitkonvertierungsoperation berücksichtigen müssen. Zu Beginn dieses Abschnitts haben wir über SQL Server-Sprachoptionen und-einstellungen gesprochen, wenn wir also die Spracheinstellung ändern, wirkt sich dies auf einige der Ausgaben für den Datums – / Zeitkonvertierungsstil aus., Im folgenden Beispiel möchten wir die Ergebnisse der Funktion GETDATE konvertieren, sodass sich diese Einstellung direkt auf den abgekürzten Monatsnamen der SQL-Konvertierungsfunktion auswirkt.
Eine weitere Überlegung betrifft das Jahresformat. Unter bestimmten Umständen können wir style parameter verwenden, der das Format nicht zurückgibt, aber dieser Fall kann einige verwirrende Situationen verursachen. Wie im folgenden Beispiel haben wir zwei verschiedene Daten und auch diese Daten speichern verschiedene Jahre, aber die Ausgabe der SQL-Konvertierungsfunktion ist ähnlich.,
TRY_CONVERT ()
Die SQL TRY_CONVERT-Funktion ist eine erweiterte form des SQL CONVERT-Funktion. Der Hauptvorteil der SQL TRY_CONVERT-Funktion ist der Schutz vor Datenkonvertierungsfehlern während der Abfrageausführung. Es ist möglich, dass Fehler beim Datenkonvertierungsprozess mit der VERDECKTEN SQL-Operation aufgrund nicht geeigneter oder schmutziger Daten auftreten können. Die SQL TRY_CONVERT-Funktion ermöglicht es uns jedoch, diese Art von Fehlern zu vermeiden. Gleichzeitig gibt es keine Syntaxunterschiede zwischen den Funktionen SQL CONVERT und TRY_CONVERT., Die SQL TRY_CONVERT Funktion gibt einen Nullwert zurück, wenn die Datenkonvertierung einen Fehler erzeugt. Im folgenden Beispiel versuchen wir zunächst, den Zeichenwert über die SQL-Konvertierungsfunktion in eine Ganzzahl zu konvertieren, und dieser Vorgang gibt einen Fehler zurück.,
1
|
SELECT CONVERT(INT,’AnyString‘) ALS ConvertFunc
|
Wenn wir andererseits die SQL TRY_CONVERT-Funktion anstelle der SQL CONVERT-Funktion für dieselbe Abfrage verwenden, wird ein Nullwert zurückgegeben.,
1
|
SELECT TRY_CONVERT(INT,’AnyString‘) AS ConvertFunc
|
Conclusion
In this article, we thoroughly reviewed the SQL CONVERT function syntax, details and significant considerations. Data conversion processes have wide usage, in practice, therefore in this article we demonstrated various examples., Ich empfehle Ihnen, bei der Datums – /Zeitdatentypkonvertierung vorsichtig zu sein, wenn Ihre Datenbank in verschiedenen Ländern verwendet wird. Ebenso ist die Formatierung auf Datums – / Zeitdatentypen ein weiterer wichtiger Punkt.
- Autor
- Recent Posts
Die meisten seiner Karriere wurde auf SQL Server-Datenbankverwaltung und-entwicklung konzentriert. Seine aktuellen Interessen liegen in der Datenbankverwaltung und Business Intelligence. Sie können ihn auf LinkedIn finden.,
Alle Beiträge von Esat Erkec anzeigen
- Erste Schritte mit der SQL – Programmierung – 3. Februar 2021
- So lesen Sie einen Ausführungsplan mit allen Details – 28. januar 2021
Schreibe einen Kommentar