2010-08-17 7 views
5

Veri türü olarak TIMESTAMP kullanarak tablo alanları ile 2038-01-19 03:14:07 sonra ne olacağını merak ediyorum?MySQL TIMESTAMP değeri '2038-01-19 03:14:07' den daha büyük

Her zaman DATETIME'u tercih ettim, ancak bu türe CURRENT_TIMESTAMP değerini varsayılan olarak atayamazsınız. Demek istediğim, 28 yıl o zaman düşündüğün zaman o kadar da uzun değil (bence her halükarda) ... Peki o zaman o tüm TIMESTAMP alanlarına ne olacak?

+0

Sanırım o zamana kadar daha uzun menzilleri destekleyen MySQL 2038'e sahip olacağız. Ve umarım hiç kimse, NOW() 'i ayarlamak için MySQL 5 – JochenJung

cevap

1

CURRENT_TIMESTAMP ürününü DATETIME sütununa atayamayabilirsiniz, ancak buna NOW() kodunu atayabilirsiniz.

y2k + 38 sayısıyla ilgili olarak, bahse girerim ki, MySQL'in daha yeni sürümleri olacak ve bu, gerçek bir endişe olmadan çok önce ele alınacaktır.

+0

'u kullanacaktır, çünkü bir TRIGGER oluşturmam gerekiyor. Bu kabul edilebilir bir çözüm olsa da, tetikleyiciler PhpMyAdmin'in ihracatında gösterilmez (ancak mysqldump ile çalışır):/ –

+0

'NOW()' i eklemek için bir tetikleyici ayarlamanıza gerek yoktur. sorguyu güncelle ... Belki bir şeyi yanlış anlamıyorum. – Fosco

+0

Varsayılan değerleri ve NOW() öğesini nasıl anlarım. TIMESTAMP vs DATETIME (kişisel favorim DATETIME) hakkında genel düşünceyi daha çok merak ettim. Ama ben sadece bu soruyu kapatacağım ve sonuç olarak, y2k + 38'in daha yeni bir versiyonla çözüldüğüne katılıyorum (umarım!) –

İlgili konular