Neden yönüyle MySQL'in ZAMAN kullanmak değil mi?

3 Cevap php

Bir kullanıcı başına temelinde dilimleri arasında çevirmek için web uygulaması gerekiyorsa, neden tüm tarih / saat alanları için yönüyle ZAMAN kullanmak değil mi? Bu TIMESTAMP değerleri UTC depolanır ve alınan zaman bağlantı için saat dilimi setine dönüştürülür düşünün.

Ben MySQL belgelerini okuyun, IRC bu soruyu sordum, yoğun Google arandı ve benim co-işçi sordu ve ben ZAMAN kullanmak için zorlayıcı bir neden bulmak zorunda.

Not: Ben DAMGASI 1970 sınırlı bir menzile sahip anlamak - 2038; O benim durumumda bir sorun olacak değil. Ayrıca, MySQL PHP kullanıyorum.

3 Cevap

DATETIME size veri kullanmak keyfi tarihler ve saatler içindir.

TIMESTAMP Eğer zaman otomatik olarak güncellenir istediğinizde içindir. Eğer satır güncellendi / takıldığında bilmek istiyorsanız, bir zaman damgası kullanın.

Ayrıca, bir TIMESTAMP sadece stored UTC olduğunu akılda tutmak - bir sorgunun parçası olarak geri iletilir önce sunucunun yerel saatine göre dönüştürülür.

Senin durumunda, bir DATETIME kullanarak daha iyidir. Eğer UTC konusunda endişeli iseniz, bu ince - sadece UTC tarihleri ​​yaratmak yerine yerel saat ile. Kullan UTC_TIMESTAMP.

Ben cevap burada olduğunu düşünüyorum:

Ben DAMGASI 1970 sınırlı bir menzile sahip anlamak - 2038; that is not going to be an issue in my case.

Ben projelerin uzun ömürlü hakkında dikkatli yapma varsayımlar olurdu especially when it comes to database schemas . Veritabanları uzun onları uzağa gitti kullanılan uygulamalardan sonra yerinde ve kullanımında kalması için bir eğilim var.

Randalpho cevabı birçok gerçekleri yanlış!

Zaman damgaları otomatik olarak oluşturma OR güncellemeleri güncelleştirilmesi gerekmez.

Ayrıca, zaman damgaları MÜVEKKİLİN yerel saati, değil serever en çevrilir.

Sadece datetime MySQL dokümanlar bakmak.