ms sql ve şartlı sql cümlesi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

ms sql ve şartlı sql cümlesi

Mesaj gönderen hdayi »

Merhaba,
Ms Sql'de cast ile tarih alanının gününü alıyorum

Kod: Tümünü seç

CAST(DAY(DOGUM_TARIHI) AS VARCHAR(2))
bu aldığım kısmın boyu 1 ise başına 0 (sıfır) eklemek istiyorum. Aynı şeyi Ay içinde yaparak ikisini 4 karakterlik bir string olarak almak istiyorum.
09051970
olan alanı

Kod: Tümünü seç

CAST(DAY(DOGUM_TARIHI) AS VARCHAR(2))+CAST(MONTH(DOGUM_TARIHI) AS VARCHAR(2))
olarak aldığımda sonuç
95
oluyor
oysa ben
0905
olsun istiyorum.

Cümleyi bi türlü yazamadım, hep bi yerlerde hata verdi.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Tek basamaklı gün ve ayı sıfırlı olarak yazmıyor. '0'||CAST(...) şeklinde yapabilirsin fakat burda da 10 ve yukarısı değerler için sıfırı eklememesini if veya iif kontrol edebilirsin. Burada işi direkt select içinde değil de SP veya Trigger içinden yapıyorsan daha rahat olabilirsin.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
cetoonak
Üye
Mesajlar: 50
Kayıt: 12 Haz 2003 09:53
Konum: www.mussimsek.com

Mesaj gönderen cetoonak »

Merhaba CAST yerine CONVERT kullanarak yaptım.

Kod: Tümünü seç

SELECT 
  CASE
    WHEN DAY(Tarih) < 10 THEN '0' + CONVERT(VARCHAR, DAY(Tarih))
    ELSE CONVERT(VARCHAR, DAY(Tarih))
  END + 
  CASE
    WHEN MONTH(Tarih) < 10 THEN '0' + CONVERT(VARCHAR, MONTH(Tarih))
    ELSE CONVERT(VARCHAR, MONTH(Tarih))
  END +
  CONVERT(VARCHAR, YEAR(Tarih)) AS NewTarih
FROM
  TableName
Kolay gelsin...
Cevapla