Funkcja CAST() w MySQL służy do konwersji wartości z jednego typu danych na inny typ danych określony w wyrażeniu. Używa się go najczęściej z klauzulami WHERE, HAVING i JOIN. Ta funkcja jest podobna do funkcji CONVERT() w MySQL'a .
Poniżej znajdują się typy danych, dla których ta funkcja działa doskonale:
Typ danych | Opisy |
---|---|
DATA | Konwertuje wartość na typ danych DATE w formacie „RRRR-MM-DD”. Obsługuje zakres DATY od „1000-01-01” do „9999-12-31”. |
DATAGODZINA | Konwertuje wartość na typ danych DATETIME w formacie „RRRR-MM-DD HH:MM:SS”. Obsługuje zakres od „1000-01-01 00:00:00” do „9999-12-31 23:59:59”. |
CZAS | Konwertuje wartość na typ danych TIME w formacie „GG:MM:SS”. Obsługuje zakres czasu od „-838:59:59” do „838:59:59”. |
ZWĘGLAĆ | Konwertuje wartość na typ danych CHAR zawierający ciąg o stałej długości. |
DZIESIĘTNY | Konwertuje wartość na typ danych DECIMAL, który zawiera ciąg dziesiętny. |
PODPISANO | Konwertuje wartość na typ danych SIGNED, który zawiera 64-bitową liczbę całkowitą ze znakiem. |
NIE PODPISANE | Konwertuje wartość na typ danych UNSIGNED, który zawiera 64-bitową liczbę całkowitą bez znaku. |
DWÓJKOWY | Konwertuje wartość na typ danych BINARY, który zawiera ciąg binarny. |
Składnia
Poniżej przedstawiono składnię funkcji CAST() w MySQL:
CAST(expression AS datatype);
Wyjaśnienie parametrów
Ta składnia akceptuje dwa parametry, które zostaną omówione poniżej:
Parametr | Wymóg | Opisy |
---|---|---|
Wyrażenie | Wymagany | Jest to wartość, która zostanie przekonwertowana na inny konkretny typ danych. |
Typ danych | Wymagany | Jest to wartość lub typ danych, na który należy przekonwertować wartość wyrażenia. |
Wartość zwracana
Po konwersji zwróci wartość, w jakim typ danych chcemy przekonwertować.
Obsługa wersji MySQL
Funkcja CAST może obsługiwać następujące wersje MySQL:
- MySQL8.0
- MySQL-a 5.7
- MySQL-a 5.6
- MySQL-a 5.5
- MySQL 5.1
- MySQL5.0
- MySQL 4.1
- MySQL 4.0
Pozwól nam zrozumieć funkcję MySQL CAST() na poniższych przykładach. Funkcji CAST możemy używać bezpośrednio z instrukcją SELECT.
Przykład 1
Ta instrukcja konwertuje wartość na typ danych DATE.
SELECT CAST('2018-11-30' AS DATE);
Wyjście
Przykład 2
Ta instrukcja konwertuje wartość na typ danych SIGNED.
SELECT CAST(3-6 AS SIGNED);
Wyjście
Przykład 3
Ta instrukcja konwertuje wartość na typ danych UNSIGNED.
SELECT CAST(3-6 AS UNSIGNED);
Wyjście
Przykład 4
Czasami istnieje potrzeba jawnej konwersji ciągu na liczbę całkowitą. Aby przekonwertować wartość na typ danych INTEGER, użyj poniższej instrukcji.
SELECT (3 + CAST('3' AS SIGNED))/2;
Wyjście
Przykład 5
Poniższa instrukcja najpierw konwertuje wartość całkowitą na typ danych typu string, a następnie wykonuje konkatenację z innym określonym ciągiem.
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
Wyjście
Przykład 6
W tym przykładzie zobaczymy, jak funkcja CAST współpracuje z tabelą. Najpierw utwórzmy tabelę ' Zamówienia ', który zawiera następujące dane:
W powyższej tabeli widzimy, że Order_Date ma typ danych DATE. Teraz, jeśli chcemy uzyskać nazwę produktu pomiędzy wybranymi zakresami czasu, wykonaj poniższą instrukcję. W tym przypadku ciąg literału został przekonwertowany na wartość znacznika czasu przed oceną warunku WHERE.
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
Ta instrukcja da następujące dane wyjściowe: