Heim  >  Artikel  >  Datenbank  >  MS SQL Server – Typkonvertierung

MS SQL Server – Typkonvertierung

PHPz
PHPznach vorne
2023-09-03 08:05:021336Durchsuche

MS SQL Server - 类型转换

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.

In MS SQL Server integrierte Datentypen

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.

Beispiel

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.

Implizite Datentypkonvertierung

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.

Beispiel

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.

Explizite Datentypkonvertierung

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 ] )

Beispiel

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.

Datentypen in Abfragen konvertieren

Wir können die Datentypkonvertierung auch in Abfragen verwenden, um Datentypen in andere Datentypen umzuwandeln. Dies ist besonders nützlich, wenn Sie Abfrageergebnisse filtern.

Beispiel

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.

Konvertierungsfehler behandeln

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.

Beispiel

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.

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen