Örtük ve açık dönüşüm, tarih ve sayı biçim öğeleri, fm ve RR.
Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.
Örtük ve açık dönüşüm
Oracle bazı durumlarda tipi kendiliğinden çevirir (WHERE hire_date = '01-MAR-15' oturumun NLS_DATE_FORMAT ayarına göre çevrilir). Bu davranış ortama bağlı olduğu için güvenilmezdir; her zaman açık dönüşüm kullan.
| Fonksiyon | Yön |
TO_CHAR(tarih|sayı, 'biçim') | tarih/sayı → metin |
TO_DATE('metin', 'biçim') | metin → tarih |
TO_NUMBER('metin', 'biçim') | metin → sayı |
CAST(x AS tip) | standart dönüşüm |
Tarih biçim öğeleri
| Öğe | Anlamı | Örnek |
YYYY / YY / RR | Yıl (RR: 50–99 → 1900'ler, 00–49 → 2000'ler) | 2024 |
MM / MON / MONTH | Ay numarası / kısa ad / uzun ad | 12 / DEC / DECEMBER |
DD / DY / DAY | Gün / kısa gün adı / uzun gün adı | 25 / WED / WEDNESDAY |
HH24:MI:SS | Saat:dakika:saniye | 14:05:09 |
Q, WW, D | Çeyrek, yılın haftası, haftanın günü | 4 |
fm | Dolgu boşluklarını ve baştaki sıfırları kaldırır | fmMonth |
"metin" | Biçime sabit metin ekler | 'DD "Aralık"' |
SELECT TO_CHAR(DATE '2024-12-05', 'DD.MM.YYYY') AS tr_tarih,
TO_CHAR(DATE '2024-12-05', 'YYYY-"Q"Q') AS ceyrek,
TO_DATE('31.12.2024', 'DD.MM.YYYY') AS tarih,
TO_CHAR(1234567.891, '9,999,999.99') AS sayi,
TO_CHAR(42, '00000') AS sifirli,
TO_NUMBER('1,250.75', '9,999.99') AS metinden_sayi
FROM dual;
Sayı biçim öğeleri
| Öğe | Anlamı |
9 | Rakam (baştaki sıfırlar boşluk) |
0 | Rakam (baştaki sıfırlar yazılır) |
, . | Binlik ve ondalık ayırıcı (G ve D yerel ayara göre) |
$, L | Para birimi |
MI, PR | Negatifi sonda eksi / açılı parantezle göster |
Sınav tuzağıBiçimdeki basamak sayısı yetmezse TO_CHAR sonucu ##### olur. TO_DATE'te metin biçimle uyuşmazsa hata (ORA-01861) verir.