TIMESTAMP WITH TIME ZONE
MySQL TIMESTAMP WITH TIME ZONE diye bir sütun tipi desteklemez. Sadece TIMESTAMP sütun tipi vardır
TIMESTAMP
Açıklaması şöyle. Burada TIMESTAMP'in alabileceği en küçük değerin '1970-01-01 00:00:00' olmadığına dikkat etmek lazım. Yani 1970'ten sonra 1 saniye lazım
The TIMESTAMP data type has a range of '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC. It has varying properties, depending on the MySQL version and the SQL mode the server is running in.
Açıklaması şöyle. Yani TIMESTAMP YYYY-MM-DD hh:mm:ss[.fraction] şeklindedir.
The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.
SQL
Örnek
Şöyle yaparız
CREATE TABLE test ( ts TIMESTAMP CURRENT_TIMESTAMP -- optional ); INSERT INTO test (ts) VALUES('2020-07-19 18:09:33'); INSERT INTO test (ts) VALUES('2020-07-19');
TIMESTAMP Okunurken Time Zone'a Göre Çevrilir
Saat Dilimini kontrol etmek için
1. Düz SQL için Veri tabanının time_zone değişkeni kullanılabilir. TIMESTAMP ve time_zone İlişkisi yazısına taşıdım
2. JDBC için açıklamaları Sütun Tipleri - TIMESTAMP ve JDBC yazısına taşıdım
java.sql.TimeStamp
Sanırım şöyle çalışıyor. TimeStamp nesnesi string'e çevriliyor ve öyle kaydediliyor. String'e çevirirken iki tane ayar devreye girer
1. Bağlantı string'inde verilen saat dilimi.
2. Eğer Bağlantı string'inde saat dilimi verilmemişse JVM saat dilimi kullanılır
Varsayılan Değerler
TIMESTAMP ve time_zone İlişkisi yazısına taşıdım
Hiç yorum yok:
Yorum Gönder