Sunteți pe pagina 1din 15

FUNC II DE CONVERSIE

Pentru bazele de date, schimbarile de format si de afisare pentru diverse tipuri de date, se realizeaza cu ajutorul functiilor de conversie.

-Serverul Oracle poate realiza urmatoarele conversii implicite:

- De la VARCHAR2 sau CHAR la NUMBER sau DATE - De la NUMBER la VARCHAR2 - De la DATE la VARCHAR2

Sunt posibile 4 conversii explicite de tip: - Conversia unei date calendaristice intr-o data de tip sir de caractere - Conversia unei date de tip numeric intr-o data de tip sir de caractere - Conversia unei date de tip sir de caractere intr-o data de tip numeric - Conversia unei date de tip sir de caractere intr-o data calendaristica

CONVERSIA UNEI DATE CALENDARISTICE IN SIR DE CARACTERE Adesea, este preferabil sa convertim datele calendaristice stocate in bazele de date din formatul implicit intr-un format convenabil. Conversia se realizeaza cu ajutorul functiei TO_CHAR.

Sintaxa: TO_CHAR (date column name, 'format model')

Modelul de format ( format model ) are urmatoarele caracteristici: - Trebuie inclus intre apostrofuri si este case sensitiv - Poata sa contina orice format valid de data calendaristica - Poate folosi specificatia fm pentru a elimina spatiile inutile si zerourile nesemnificative la afisare - Poate folosi specificatia sp pentru a scrie un numar litera cu litera - Foloseste th pentru ca numarul sa apara in format ordinal (ca numar de ordine). - Sunt folosite ghilimelele pentru a adauga siruri de caractere modelului de format

Elemente ale modelului de format pentru date calendaristice: - YYYY, RRRR anul intreg pe 4 cifre - YY, RR ultimele dou cifre din an - YEAR, Year anul scris litera cu litera - MM luna reprezentata sub forma a doua cifre - MONTH numele intreg al lunii calendaristice - MON primele 3 litere ale denumirii lunii - RM luna scrisa cu cifre romane - DY, Dy - denumirea zilei abreviata la 3 litere - DAY, Day numele intreg al zilei - DD numarul zilei din luna - DDD - numarul zilei din cadrul anului

- WW numarul saptamanii din an - W ultima cifr a num rului s pt mnii din an - CC secolul cu dou cifre - Q trimestrul din an n care se g se te data - HH24 ora n formatul cu 24 de ore - HH ora n formatul cu 12 ore - MI minutele cu dou cifre - SS secundele cu dou cifre - TH sufix pentru numerale (th sau nd sau st) - SP numerele sunt scrise n cuvinte

Exemple: 1) SELECT TO_CHAR (event_date, 'fmMonth dd, YYYY') FROM d_events; va fi afisat urmatorul rezultat: May 14, 2004 April 28, 2004 2) SELECT id, TO_CHAR(event_date, 'MONTH DD, YYYY') FROM d_events; 100 MAY 14, 2004 100 APRIL 28, 2004

CONVERSIA NUMERELOR IN SIRURI DE CARACTERE (VARCHAR2) Valorile numerice stocate in bazele de date nu au un anume format, iar pentru stabilirea unui format este necesara conversia in siruri de caractere. Aceasta transformare se realizeaza tot cu ajutorul functiei TO_CHAR: TO_CHAR(number, 'format model')

Cateva dintre elementele de format folosite de functia TO_CHAR pentru a afisa valorile numerice ca siruri de caractere, sunt urmatoarele: - 9 reprezinta o pozitie numerica (numarul de cifre 9 determine pe cate pozitii se face afisarea) - 0 determina afisarea zerourilor nesemnificative Exemplu: 099999 determina afisarea 001234 - $ - afisarea semnului $ Exemplu: $999999 determina afisarea $1234 - L afisarea simbolului monedei locale - . specifica pozitia punctului zecimal Exemplu: 999999.99 determina afisarea 1234 - , - specifica pozitia virgulei indicatoare pentru mii - EEEE returneaz scrierea tiin ific a num rului - MI afi eaz semnul minus dup num r dac acesta este negativ - PR numerele negative sunt incluse ntre paranteze unghiulare - RN, rn afi eaz num rul n cifre romane

-X

afi eaz num rul n baza 16

- MI pentru numerele negative, semnul minus se pune in dreapta Exemplu: 999999MI determina afisarea 1234- PR punerea numerelor negative intre paranteze Exemplu: 999999PR determina afisarea <1234> - EEEE afisarea notatiei stiintifce Exemplu: 99.999EEEE determina afisarea 1.23E+03 - B afisarea valorilor 0 ca spatii

CONVERSIA SIRURILOR DE CARACTERE IN NUMERE


Functia care realizeaza aceasta conversie: TO_NUMBER(character string, 'format model') Exemplu: SELECT TO_NUMBER('450', '9999') + 10 AS "Number Change FROM DUAL; Rezultatul afisat va fi 460

CONVERSIA SIRURILOR DE CARACTERE IN DATE CALENDARISTICE

Functia care realizeaza aceasta conversie: TO_DATE('character string', 'format model') Exemplu: TO_DATE('November 3, 2001', 'Month dd, RRRR') va returna 03-NOV-01

La conversiile de la siruri de caractere la date calendaristice poate fi folosit modificatorul fx (format exact) care specifica o potrivire exacta intre argumentul sir de caractere si modelul de format al datei calendaristice. Exemplu: SELECT TO_DATE('May10,1989', 'fxMonDD,RRRR') AS "Convert" FROM DUAL; Regulile de utilizare a modificatorului fx: - Punctuatia si textul sirului de caractere trebuie sa se potriveasca partilor corespunzatoare din modelul de format - Daca sirul de caractere are blank-uri suplimentare, fara specificatia fx vor fi ignorate - Datele numerice din sirul de caractere trebuie sa aiba acelasi numar de cifre ca si elementul corespunzator al formatului.

FORMATELE RR SI YY
- Daca formatul de data este specificat folosind YY sau YYYY, valoarea returnata va fi in secolul curent. - Daca formatul de data foloseste RR sau RRRR, sunt doua posibilitati:

Exemplu: