Cevaplar
-
10 yıl önce yazılmış84 cevap - 1 soruÖncelikle MySQL'de timestamp diye bir alan var aslında ama neden integer alan kullanılıyor ondan bahsedelim...
MySQL'de şöyle garip bir davranış var: Tablodaki ilk timestamp alanda otomatik olarak bir trigger çalışır: Satır update edildiğinde bu ilk alan da otomatik olarak update edilir (en azından eski versiyonlarda bu böyleydi, son zamanlarda değiştiyse bilemem). Eğer bunun bu şekilde olmasını istemiyorsanız integer alana timestamp kaydedersiniz.
Peki neden datetime değil timestamp derseniz de, aklıma gelen tek mantıklı neden timezone hesaplamaları ile ilgili olabilir. Timestamp biliyorsunuz 1.1.1970 00:00:00 (UTC) tarihinden bu yana geçen saniye miktarıdır. Dolayısıyla kayıtlı tarihten örneğin "3 saat öncesi"ni hesaplamak istiyorsanız timestamp daha pratik olabilir. Eğer yazılımınız birden fazla ülkeden kullanılmıyorsa bunun da bir önemi kalmıyor.
Onun dışında datetime her zaman daha pratik, date_add gibi fonksiyonları kullanıp istediğiniz zaman unix_timestamp ile timestamp'i alabilirsiniz. Timezone desteği de var. Veritabanını doğrudan incelemeniz gerektiğinde de tarihler daha kolay okunur öteki türlü formatlamanız gerekecek...
-
zyber
Açıklamanız için teşekkürler.
İki timestampdan birini güncellerken diğerininde güncellenmesini de öğrenmiş olduk.
peki mesala doğum tarihi diyelim datetime ile yaptık ve güncelleme sayfasına select menü içine gün ay yıl şeklinde göstermek istediğimizde de sanki datetime daha fonksiyonel gibi.10 yıl önce yazılmış
- zyber