Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

timestamp formatı

Konu, 'Veritabanları' kısmında nihal tarafından paylaşıldı.

  1. nihal

    nihal Aktif Üye

    Kayıt:
    8 Ocak 2003
    Mesajlar:
    286
    Beğenilen Mesajlar:
    0
    arkadaşlar veritabanına tipi timestamp olan tarih bilgisini textbox aracılığı ile kaydetmek istiyorum...
    Mesela bunu için textbox'a 12.12.2002 gibi bir tarih girdiğimde tip hatası oluşuyor.. bunu nasıl çözebilirim..
     
  2. mkarabulut

    mkarabulut Misafir

    Öncelikle soru hakkında bi şey söylemeden TIMESTAMP tipi hakkında bi şey söylemek istiyorum.
    TIMESTAMP tipinin diğer kolon tiplerinden ayrıldığı ince bir nokta var , o da kullanıcı müdahalesine ihtiyaç bırakmadan satır oluşturulduğunda ve güncellendiğinde o anki tarih ile kendisini otomatik güncellemesidir.
    Yani INSERT ve UPDATE işlemleri sırasında TIMESTAMP türündeki alan değeri otomatik olarak INSERT veya UPDATE işleminin gerçekleştiği zaman olarak güncellenecektir.
    Bu INSERT işlemi için bir avantaj olarak görülsede UPDATE işlemi sırasında da tarih değeri otomatik değişeceği için uygulamacının her UPDATE işleminde müdahalesini gerektirmektedir.Bu açıdan bi dezavantaj doğurmaktadır.
    Yani
    Kod:
    UPDATE uyeler SET isim='Mustafa'
    
    dediğinde TIMESTAMP olarak belirlenen üye tarih bölümü otomatik olarak o an ki tarih ile değiştirilecektir.Bunu engellemek için mesela
    Kod:
    UPDATE uyeler SET
    isim='Mustafa',uye_tarih=uye_tarih
    
    şeklinde bir müdahalede bulunman gerekecektir.

    Gelelim soruna TIMESTAMP türü YYYYMMDDHHMMSS formatında tarih bilgisini alır. Ama bu formatta olmasa bile 2002-12-12 formatındaki tarihlerde gerekli formata mysql tarafından dönüştürülür
    yalnız dönüşüm sırasında verdiğin tarih bilgisinin doğru dönüştürülmesi için yine bazı formatlara uyması grekiyor.
    Mesela
    Kod:
    12-12-2002
    2012122002000
    
    gibi bi dönüşüm geçirir ki tam karşılığı aslında 2012 dolaylarında bir tarih olmaktadır :)
    Ama
    Kod:
    2002-12-12
    
    formatındaki tarih bilgisi doğru dönüştürülebilinmektedir.
    Yine de en temiz yol gerekli formatta bilgiyi vermektir.
    Aşağıda bahsettiğin formattaki tarihi gerekli TIMESTAMP'e dönüştüren bi kod parçacığı var,bir incele..
    Kod:
    //12.12.2002 formatındaki bilgiyi
    //20021212 formatına dönüştür
    $date = eregi("^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$",
                  "\\3\\2\\1",
                  $_POST['date']
                 );
    
    Diyebileceklerim bu kdar. Kolay gelsin.
     
  3. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    uffff ne uzattın yaw :D

    Teşekkürler. :D (bak time'ın bu özelliğini bilmiyordum...)
     
  4. acemi

    acemi Misafir

    Hangi veritabanini kullaniyorsun?
     
  5. mkarabulut

    mkarabulut Misafir

    Aslında ben veritabanı olrak mysql kullandığını farzettim, çünkü aynı kii aynı soruyu php bölümüne de sormuştu sanırım..

    Söylediklerim aslında mysql tecrübem ile ilgili,başka bir veritabanı farklı davranabilir..

    Zaten soruda şaşırdığım nokta tip hatası meselesi.. mySQL'in şimdiye kadar tip hatası verdiğini pek görmedim ben.. Bi şekilde kendince dönşümler uygulayıp yine kendi gereksindiği formata düönüştürür...

    nihal acaba hangi veritabanını kullanıyor ?
     
  6. nihal

    nihal Aktif Üye

    Kayıt:
    8 Ocak 2003
    Mesajlar:
    286
    Beğenilen Mesajlar:
    0
    kusura bakmayın arkadaşlar biraz geç oldu cevabım ama veritabanım sybase,php ile veritabınama odbc ile bağlanıyorum..
    ama sizin dediğiniz kuralların burada da geçerli olacağını zannediyorum..

    yardımlarınız için çok teşekkürler..

    tip hatası dediğim kısımda da veritabanının tarih alanına 10.11.2002 gibi bir tarih girdiğim de "Integrity construction.. "
    içierik uyuşmazlığı diye bir hata veriyordu...
    ama dönüştürme işiyle problem çözülebilir sanırım..

    tekrar teşekkür ediyorum..
     
  7. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    nihal istersen PHPbb nin veri tabanları için olan template ini kullan işine yarıyacaktır.
     
  8. nihal

    nihal Aktif Üye

    Kayıt:
    8 Ocak 2003
    Mesajlar:
    286
    Beğenilen Mesajlar:
    0
    çok acemice oldu ama nereden bulabilirim bu template'i... bir yardımcı olabilirsen sevinirim..
     
  9. acemi

    acemi Misafir