MySQL tarih ve zaman DATETIME, TIMESTAMP ve tamsayı (01/01/1970 beri saniye sayısı) olarak saklanabilir. Her yararları ve sakıncaları bir lamba yığını altında gelişen, özellikle nelerdir?
TIMESTAMP ek ve (temelde yıl, ay, gün, saat, dakika ve saniye oluşan sadece bir dize olsa), tip TIMESTAMP bir alan otomatik kayıt takıldığında güncellenmiş veya değiştirilmiş hiçbir açık bir MySQL özel bir yöntem saklanır alan değeri verilir:
mysql> create table timestamp_test(
id integer not null auto_increment primary key,
val varchar(100) not null default '', ts timestamp not null);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into timestamp_test (val) values ('foobar');
Query OK, 1 row affected (0.00 sec)
mysql> select * from timestamp_test;
+----+--------+----------------+
| id | val | ts |
+----+--------+----------------+
| 1 | foobar | 20090122174108 |
+----+--------+----------------+
1 row in set (0.00 sec)
mysql> update timestamp_test set val = 'foo bar' where id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from timestamp_test;
+----+---------+----------------+
| id | val | ts |
+----+---------+----------------+
| 1 | foo bar | 20090122174123 |
+----+---------+----------------+
1 row in set (0.00 sec)
mysql>
DATETIME MySQL tarih ve zaman fonksiyonları ile birlikte çalışır tarihler ve saatler için standart veri türüdür. Muhtemelen pratikte bu kullanmak istiyorum
Ben MySQL DATETIME veya TARİH alanları kullanarak verileri kaydetmek istiyorum. En azından, yıl 2038 tarih değerlerini saklamak için gidiyoruz: http://en.wikipedia.org/wiki/Year_2038_problem. Eğer farklı tamsayıları depolayan bir sistem üzerinde iseniz, bu sorunu olmayabilir.
Bu tarih değerlerini hatta damgaları karşılaştırmak hala kolaydır.
SELECT * FROM myTable WHERE startDate > '2009-01-01'
SELECT * FROM myTable WHERE UNIX_TIMESTAMP(startDate) > 1232541482
Peki ben şu açıklamak yardımcı olacaktır sanırım.
Tarih ve zaman mysql bir DATETIME alanda saklanabilir.
Alanı otomatik oluşturulması üzerinde dolu olacak - bir satır oluşturulduğu zaman damgası istiyorsanız DAMGASI kullanılır.
Tarih için bir tamsayı kullanarak bu DATETIME yapar aslında ne olduğundan biraz overkill ama her zaman sizin için dönüşüm tüketen gelmez.
Belirli bir yararı var mı yoksa hakkında bulmak istiyoruz dezavantajı,?