Oracle DATE ve TIMESTAMP arasındaki fark


92

Oracle DATE ve TIMESTAMP türü arasındaki fark nedir? Her ikisinin de tarih ve saat bileşeni var mı? Ayrıca bu tarih türleri için Java'da karşılık gelen tür nedir?


3
TIMESTAMPaynıdır DATE, fraksiyonlu saniye hassas eklemiştir hariç.
NullUserException

5
En büyük fark: DATEsaniyeye göre doğrudur ve kesirli saniyeleri yoktur. TIMESTAMPkesirli saniyeye sahiptir. Saniyelerdeki ondalık basamak sayısı, sunucunun işletim sistemine bağlıdır, örneğin, Windows 7 makinemdeki Oracle, zaman damgası için üç ondalık basamak döndürürken, bir müşterinin büyük Solaris kutusu altı döndürür. Zaman damgaları ayrıca belirli bir saat dilimini tutabilir veya ortak saat dilimine normalleştirilebilir - buraya gidin ve daha fazla bilgi için "TIMESTAMP" araması yapın, ardından biraz deneyin :)
Ed Gibbs

Yanıtlar:


98

DATE ve TIMESTAMP aynı boyuta sahip (7 bayt). Bu baytlar yüzyıl, on yıl, yıl, ay, gün, saat, dakika ve saniyeleri saklamak için kullanılır. Ancak TIMESTAMP, kesirli saniye (11 bayt) ve saat dilimli kesirli saniye (13 bayt) gibi ek bilgilerin depolanmasına izin verir.

TIMESTAMP, Oracle ile uyumlu bir ANSI olarak eklendi. Ondan önce yalnızca DATE vardı.

Genel durumlarda DATE kullanmanız gerekir. Ancak, zamanında kesinlik bir gereklilikse, TIMESTAMP'ı kullanın.

Ve Oracle JDBC sürücüsünün oracle.sql.DATE sınıfı Java hakkında, Oracle Date / Timestamp veri türü ile Java sınıfları java.sql.Date, java.sql.Time ve java.sql.Timestamp arasında dönüşümler sağlar.


1
Bir uyarı kelimesi: Maalesef, Oracle'da bir TARİH sütununu sorguladığınızda, varsayılan olarak size yalnızca "gün" döndürür, ancak bunu TO_TIMESTAMP (DATE_COLUMN_NAME) gibi kullanırsanız, size daha fazla hassasiyet döndürür. Hangi bir şekilde jdbc / hibernate ile varsayılan değil, en azından burada değil.
rogerdpack

6
"Genel durumlarda DATE'i kullanmalısınız" - ama tam olarak neden?
siledh

4
Kullanmalısınız TIMESTAMP WITH TIME ZONE. Aksi takdirde gün ışığından yararlanma saati belirsiz zamanlara neden olacaktır.
kmkaplan

15
DATE türünün TIME bilgisi içermesi gerçekten kafa karıştırıcı buluyorum. Kelimenin anlamı bu değil.
Daddy32

3
@ Daddy32 TIMESTAMPyaklaşık 20 yıl sonra eklendi DATE. Gerçekten geri dönüp değişemezlerdi DATE.
William Robertson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.