
Podczas pracy z bazami danych często zdarza się konieczność konwersji różnych typów danych. W SQL Server mamy do dyspozycji funkcję CONVERT
, która pozwala na zamianę jednego typu danych na inny. Jest to bardzo przydatne w sytuacjach, gdy musimy dopasować dane do określonego formatu, np. przy operacjach na datach, liczbach czy łańcuchach znaków.
Co to jest CONVERT w języku SQL?
Funkcja CONVERT
w SQL Server służy do konwersji jednego typu danych na inny. W odróżnieniu od funkcji CAST
, CONVERT
pozwala na większą kontrolę nad formatowaniem, szczególnie w przypadku konwersji dat i godzin.
Składnia funkcji CONVERT
Podstawowa składnia funkcji CONVERT
wygląda następująco:
CONVERT(nowy_typ, wartość, [styl])
Gdzie:
- nowy_typ – typ danych, do którego chcemy dokonać konwersji.
- wartość – wartość, którą chcemy przekonwertować.
- styl (opcjonalny) – parametr umożliwiający formatowanie wyniku w przypadku konwersji do ciągów znaków (głównie dla dat).
Przykłady zastosowania CONVERT w SQL
1. Konwersja liczb na tekst
Czasami zachodzi potrzeba zamiany liczby na ciąg znaków. Możemy tego dokonać za pomocą CONVERT
:
SELECT CONVERT(VARCHAR(10), 12345) AS Wynik;
Wynik:
Wynik |
---|
12345 |
2. Konwersja daty na tekst z określonym formatem
SQL Server pozwala na formatowanie dat poprzez użycie parametru stylu. Oto kilka popularnych przykładów:
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS Data_Angielska,
CONVERT(VARCHAR, GETDATE(), 104) AS Data_Niemiecka,
CONVERT(VARCHAR, GETDATE(), 120) AS Data_ISO;
Wynik:
Data_Angielska | Data_Niemiecka | Data_ISO |
---|---|---|
25/06/2024 | 25.06.2024 | 2024-06-25 14:59:00 |
3. Konwersja tekstu na liczbę
Jeżeli mamy liczbę przechowywaną jako tekst, możemy zamienić ją na typ numeryczny:
SELECT CONVERT(INT, '12345') AS Wynik;
Wynik:
Wynik |
---|
12345 |
4. Konwersja czasu na różne formaty
Możemy konwertować również wartości czasu:
SELECT CONVERT(VARCHAR, GETDATE(), 108) AS Format_24H,
CONVERT(VARCHAR, GETDATE(), 113) AS Format_UK;
Wynik:
Format_24H | Format_UK |
---|---|
14:59:00 | 25 Jun 2024 14:59:00 |
Różnice między CONVERT a CAST
W SQL Server mamy także funkcję CAST
. Różnica polega na tym, że:
CAST
jest zgodny ze standardem SQL i zwykle bardziej przenośny między różnymi systemami bazodanowymi.CONVERT
pozwala na dodatkowe formatowanie wyników (np. dla dat).
Przykład użycia CAST
:
SELECT CAST(GETDATE() AS VARCHAR(20)) AS Wynik;
Przykład użycia CONVERT
:
SELECT CONVERT(VARCHAR(20), GETDATE(), 120) AS Wynik;
Kiedy warto używać CONVERT?
CONVERT
jest szczególnie przydatny w takich przypadkach jak:
- Formatowanie dat na potrzeby raportów.
- Zamiana wartości liczbowych na tekstowe do dalszej obróbki.
- Przetwarzanie danych wejściowych pochodzących z różnych źródeł.
Jeżeli zależy nam na czytelniejszym formatowaniu wyników, CONVERT
może okazać się lepszym wyborem niż CAST
.
Podsumowanie
Funkcja CONVERT
w języku SQL to potężne narzędzie do konwersji typów danych. Dzięki niej możemy precyzyjnie formatować wyniki – np. daty w określonych stylach. W porównaniu do CAST
, daje większą elastyczność. Mam nadzieję, że ten artykuł rozjaśnił Ci działanie CONVERT
i pomoże w codziennej pracy z bazami danych.
Inny ciekawy artykuł:
Jak działa CAST w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.