¿Cuál es la diferencia entre el tipo Oracle DATE y TIMESTAMP? ¿Ambos tienen componente de fecha y hora? Además, ¿cuál es el tipo correspondiente en Java para estos tipos de fecha?
92
DATE y TIMESTAMP tienen el mismo tamaño (7 bytes). Esos bytes se utilizan para almacenar siglo, década, año, mes, día, hora, minuto y segundos. Pero TIMESTAMP permite almacenar información adicional, como segundos fraccionarios (11 bytes) y segundos fraccionarios con zona horaria (13 bytes).
TIMESTAMP se agregó como un compatible con ANSI para Oracle. Antes de eso, solo tenía DATE.
En casos generales, debe usar DATE. Pero si la precisión en el tiempo es un requisito, use TIMESTAMP.
Y sobre Java, la clase oracle.sql.DATE del controlador Oracle JDBC, proporciona conversiones entre el tipo de datos Oracle Date / Timestamp y las clases Java java.sql.Date, java.sql.Time y java.sql.Timestamp.
TIMESTAMP WITH TIME ZONE
. De lo contrario, el horario de verano introducirá horas ambiguas.
TIMESTAMP
se agregó unos 20 años después DATE
. Realmente no podían volver atrás y cambiar DATE
.
TIMESTAMP
es el mismo queDATE
, excepto que ha agregado una precisión de fracciones de segundo.DATE
tiene una precisión de segundos y no tiene fracciones de segundo.TIMESTAMP
tiene fracciones de segundo. El número de posiciones decimales en los segundos depende del sistema operativo del servidor, por ejemplo, Oracle en mi máquina con Windows 7 devuelve tres posiciones decimales para la marca de tiempo, mientras que el enorme cuadro Solaris de un cliente devuelve seis. Las marcas de tiempo también pueden contener una zona horaria específica o normalizarse a una zona horaria común. Vaya aquí y luego busque "TIMESTAMP" para obtener más información, luego experimente un poco :)