Wenn wir Daten in MS SQL Server verarbeiten, müssen wir häufig Berechnungen durchführen oder Ergebnisse nach Datentyp filtern. Durch die korrekte Konvertierung von Datentypen wird sichergestellt, dass unsere Berechnungen korrekt sind und Abfragen die erforderlichen Ergebnisse liefern. In diesem Artikel besprechen wir verschiedene Typkonvertierungen in MS SQL Server.
MS SQL Server verfügt über verschiedene integrierte Datentypen zum Speichern verschiedener Datentypen. Dies sind gängige integrierte Datentypen in MS SQL Server -
int: Wird zum Speichern von Ganzzahlen verwendet.
dezimal: Datentyp zum Speichern von Dezimalzahlen.
varchar: Wird zum Speichern von Zeichenfolgen variabler Länge verwendet.
dateTime: wird zum Speichern von Datums- und Uhrzeitwerten verwendet.
Bit: Wird zum Speichern boolescher Werte verwendet.
Stellen Sie sich eine Tabelle mit dem Namen „Produkte“ vor. Es enthält Informationen über das Produkt, den Namen, den Preis und die Lagermenge. Wir können die Spalte „price“ als dezimalen Datentyp und die Spalte „quantity_in_stock“ als int-Datentyp definieren.
MS SQL Server konvertiert bei Bedarf automatisch einen Datentyp in einen anderen Datentyp, wenn Vorgänge für verschiedene Datentypen ausgeführt werden. Dies wird als implizite Datentypkonvertierung bezeichnet.
Stellen Sie sich eine Tabelle mit dem Namen „Verkäufe“ vor. Es enthält Informationen über Verkäufe, Verkaufspreise und Verkaufsmengen. Schreiben Sie eine Abfrage, um den Gesamtumsatz wie unten gezeigt zu berechnen: −
SELECT sale_price * quantity_sold AS total_revenue FROM sales
In dieser Abfrage konvertiert MS SQL Server automatisch den Wert von amount_sold vom Datentyp „int“ in den Datentyp „decimal“. Führen Sie dann die Multiplikation durch. Da wir int und decimal nicht multiplizieren können, ohne vorher einen der Werte umzuwandeln.
Wir können Datentypen auch explizit mit den Funktionen CAST und CONVERT konvertieren.
CAST-FunktionKonvertiert einen Ausdruck eines Datentyps in einen anderen Datentyp. Die Syntax der CAST-Funktion lautet wie folgt:
CAST ( expression AS data_type [ ( length ) ] )
CONVERT-FunktionKonvertiert einen Ausdruck eines Datentyps in einen anderen Datentyp mit einem bestimmten Formatierungsstil. Die Syntax der CONVERT-Funktion lautet wie folgt:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Stellen Sie sich eine Tabelle mit dem Namen „Bestellungen“ vor. Es enthält Informationen zur Bestellung, einschließlich des Bestelldatums. Schreiben Sie eine Abfrage, um das Bestelldatum als Zeichenfolge im Format „MM/TT/JJJJ“ abzurufen, wie unten gezeigt -
SELECT CONVERT(varchar, order_date, 101) AS 'Order Date' FROM orders
In dieser Abfrage verwenden wir die CONVERT-Funktion, um den order_date-Wert in den Datentyp varchar mit dem Formatstil 101 zu konvertieren. Es stellt das Format „MM/TT/JJJJ“ dar.
Wir können die Datentypkonvertierung auch in Abfragen verwenden, um Datentypen in andere Datentypen umzuwandeln. Dies ist besonders nützlich, wenn Sie Abfrageergebnisse filtern.
Betrachten Sie die Tabelle „Produkte“ aus dem vorherigen Beispiel. Sie möchten die Ergebnisse filtern, um nur Produkte mit einem Preis unter 10 anzuzeigen. Die Abfrage wird so aussehen
SELECT * FROM products WHERE CAST(price AS int) < 10
In dieser Abfrage haben wir die CAST-Funktion verwendet, um den Preiswert in den Datentyp int umzuwandeln. Auf diese Weise können wir es mit dem ganzzahligen Wert 10 vergleichen.
Manchmal können beim Konvertieren von Datentypen Konvertierungsfehler auftreten. Wenn wir beispielsweise versuchen, einen Zeichenfolgenwert in eine Ganzzahl umzuwandeln, und die Zeichenfolge kein gültiger Ganzzahlwert ist. Daher löst MS SQL Server einen Konvertierungsfehler aus. Um diese Fehler zu behandeln, können wir die Funktion TRY_CONVERT verwenden. Es wird versucht, einen Wert in den angegebenen Datentyp zu konvertieren. Wenn die Konvertierung fehlschlägt, wird NULL zurückgegeben.
Stellen Sie sich eine Tabelle mit dem Namen „Mitarbeiter“ vor. Es enthält Informationen über den Mitarbeiter, die Mitarbeiter-ID und das Einstellungsdatum. Sie möchten die Ergebnisse filtern, um nur Mitarbeiter anzuzeigen, die vor einem bestimmten Datum eingestellt wurden. Das Einstellungsdatum wird jedoch als Varchar-Datentyp gespeichert. Wir können eine Abfrage wie diese schreiben -
SELECT * FROM employees WHERE TRY_CONVERT(date, hire_date) < '01/01/2022'
In dieser Abfrage haben wir die Funktion TRY_CONVERT verwendet. Es wird versucht, den Wert von „hire_date“ in den Datentyp „Datum“ zu konvertieren. Wenn die Konvertierung fehlschlägt, gibt die Funktion NULL zurück. Es verhindert, dass die Abfrage Konvertierungsfehler auslöst.
MS SQL Server verfügt über integrierte Datentypen und Funktionen zum Durchführen von Typkonvertierungen. Sie sollten wissen, dass die korrekte Konvertierung von Datentypen für das Schreiben genauer und effizienter Abfragen unerlässlich ist. Mithilfe der in diesem Artikel beschriebenen Techniken können Sie sicherstellen, dass Ihre Abfragen die gewünschten Ergebnisse liefern, selbst wenn Sie mit unterschiedlichen Datentypen arbeiten.
Das obige ist der detaillierte Inhalt vonMS SQL Server – Typkonvertierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!