Konverzija tipova podataka u SQL-u

Konverzija tipova podataka u SQL-u

U SQL-u, konverzija tipova podataka predstavlja proces pretvaranja jedne vrste podataka u drugu. Proces konverzije je koristan kada podaci nisu u formatu koji odgovara za analizu, kalkulaciju ili prikaz. SQL nudi nekoliko funkcija za eksplicitnu konverziju, dok se implicitna konverzija dešava automatski u određenim situacijama. Glavne funkcije za konverziju su CAST() i CONVERT().

Implicitna i Eksplicitna Konverzija

  1. Implicitna konverzija: SQL automatski konvertuje jedan tip podatka u drugi kada je to potrebno, poput konverzije INT u FLOAT pri aritmetičkim operacijama.
  2. Eksplicitna konverzija: Kada koristimo SQL funkcije kao što su CAST() ili CONVERT() da bismo ručno konvertovali podatke.

1. CAST() funkcija

CAST() je SQL standardna funkcija koja omogućava jednostavnu konverziju tipova podataka. Sintaksa je CAST(izraz AS tip_podatka).

Primer: Konverzija VARCHAR u INT.

SELECT CAST(‘123’ AS INT) AS Broj;

Konverzija tipova podataka u SQL-u

Rezultat: Vraća 123 kao celobrojnu vrednost.

Primer: Konverzija FLOAT u VARCHAR.

SELECT CAST(123.45 AS VARCHAR(10)) AS TekstualniBroj;

Konverzija tipova podataka u SQL-u

Rezultat: Vraća ‘123.45’ kao tekst.

2. CONVERT() funkcija

CONVERT() je slična funkcija koja takođe vrši konverziju tipova podataka, ali omogućava dodatne opcije, posebno pri radu sa datumima. Sintaksa je CONVERT(tip_podatka, izraz, [stil]).

Primer: Konverzija DATETIME u VARCHAR sa određenim formatom.

SELECT CONVERT(VARCHAR(10), GETDATE(), 103) AS FormatiraniDatum;

Konverzija tipova podataka u SQL-u

Rezultat: Vraća trenutni datum u formatu dd/MM/yyyy, npr. 11/11/2024.

Napomena: U ovom primeru, 103 označava stil formata datuma (britanski format dd/MM/yyyy).

Konverzija Datuma i Vremena

SQL takođe omogućava prilagođenu konverziju datuma u različite formate. Ovo je posebno korisno kod prikaza datuma u različitim stilovima.

Primer: Konverzija DATETIME u DATE (samo datum bez vremena).

SELECT CONVERT(DATE, GETDATE()) AS SamoDatum;

Konverzija tipova podataka u SQL-u

Rezultat: prikazuje samo datum, npr. 2024-11-11.

Primena Konverzije u Upitima

Konverzija tipova podataka je često potrebna u složenijim upitima gde različiti podaci moraju biti u istom formatu radi poređenja ili prikaza.

Primer: Filtriranje transakcija na osnovu godine transakcije (ekstrakcija godine kao INT).

SELECT *
FROM Orders
WHERE CAST(YEAR(Order_Date) AS INT) = 2023;

Konverzija tipova podataka u SQL-u

U ovom primeru, funkcija YEAR() izdvaja godinu iz datuma, dok CAST() osigurava da je vrednost u celobrojnom formatu.

Kombinovanje Konverzije sa Matematičkim Operacijama

Konverzija može biti korisna i kada želimo da radimo sa decimalama ili zaokružimo vrednosti.

Primer: Konverzija FLOAT u DECIMAL sa dve decimale.

SELECT CONVERT(DECIMAL(10, 2), 123.456) AS ZaokruzeniBroj;

Konverzija tipova podataka u SQL-u

Rezultat: Vraća 123.46, zaokruženo na dve decimale.

Prednosti i Oprez pri Konverziji

Konverzija podataka u SQL-u može biti izuzetno korisna, ali je važno paziti na sledeće:

  • Gubitak podataka: Neke konverzije mogu rezultirati gubitkom podataka (npr. konverzija FLOAT u INT gubi decimalne vrednosti).
  • Greške pri konverziji: Pokušaj konverzije neprikladnog teksta u broj može dovesti do grešaka (CONVERT() ili CAST() mogu vratiti grešku ako konverzija nije moguća).

Ovo su neki od najčešće korišćenih načina konverzije podataka u SQL-u, koji pomažu u preciznijem radu sa podacima i olakšavaju analizu i prikaz informacija u željenom formatu.

Leave a comment

Your email address will not be published. Required fields are marked *