MySQL Timestamp kullanımı
Timestamp ‘ mysqldeki tarih formatlarından sadece birisi. Sizleri şimdi timestamp ile tanıştırmak istiyorum . Öncelikle şunu belirtmek istiyorum. Timestamp sütünu aynen datetime sütunundaki gibi 19 karekter halinde ‘YYYY-MM-DD HH:MM:SS’ formatında görüntülenir fakat saklanan değeri aslında görüntülenen değeri ile aynı değil unix zaman damgası şeklinde 10 karakterli bir rakam tutar.
Not : Aşağıda anlatacağım uygulamaları test edebilmek veya kullanabilmek için mysql sürümünüz 5+ olması gerekmektedir.
1. Timestamp alanı otomatik anlık tarihli kayıt girebilme veya otomatik kayıt güncellendiğinde kendinide güncelleyebilme özelliğine sahiptir.
Otomatik başlatma ve otomatik güncelleme
... TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Sadece Otomatik başlatma
... TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Sadece Otomatik güncelleme
... TTIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
Hiçbiri
... TIMESTAMP DEFAULT 0
2. Şuandaki zaman ile select ile çekeceğiniz verideki zaman arasındaki farkını UTC formatında çıktı almak.
SELECT (CURRENT_TIMESTAMP - zaman ) AS zaman_fark FROM tablo
3. Timestampdiff fonksiyonu ile iki zaman arasındaki farkı bulmak.
iki zaman arasındaki saniye farkı
SELECT TIMESTAMPDIFF(SECOND,'2011-02-01','2011-05-01') AS saniye;
iki zaman arasındaki dakika farkı
SELECT TIMESTAMPDIFF(MINUTE,'2011-02-01','2011-05-01') AS dakika;
iki zaman arasındaki saat farkı
SELECT TIMESTAMPDIFF(HOUR,'2011-02-01','2011-05-01') AS saat;
iki zaman arasındaki gün farkı
SELECT TIMESTAMPDIFF(DAY,'2011-02-01','2011-05-01') AS gun;
iki zaman arasındaki hafta farkı
SELECT TIMESTAMPDIFF(WEEK,'2011-02-01','2011-05-01') AS hafta;
iki zaman arasındaki ay farkı
SELECT TIMESTAMPDIFF(MONTH,'2011-02-01','2011-05-01') AS ay;
iki zaman arasındaki yıl farkı
SELECT TIMESTAMPDIFF(YEAR,'2011-02-01','2011-05-01') AS yil;
iki zaman arasındaki mevsim farkı
SELECT TIMESTAMPDIFF(QUARTER,'2011-02-01','2011-05-01') AS mevsim;
4. Timestampadd fonksiyonu tarihin üzerine gün,ay,yil ekleyebilir ve eklendiği zamandaki tarih alınabilir
Şuandan 1.000.000 saniye sonraki zaman ne acaba ?
SELECT TIMESTAMPADD(SECOND , 1000000 , CURRENT_TIMESTAMP ) as birmilyonsaniyesonra;
Belirli bir tarihten 1 yıl sonraki tarihi bulmak .
SELECT TIMESTAMPADD( YEAR, 1, '2011-04-19' ) AS 1yilsonra;
5.Mysql alan türü timestamp olan sorgularda BETWEEN kullanımı ?
Not : tarih_1,tarih_2 unix formatına çevirilmiş 10 karakterli rakamlar olmalıdır. Aşağıdaki örnekte kullanılan UNIX_TIMESTAMP fonksiyonu bizim ‘YYYY-MM-DD HH:MM:SS’ görüntülenen tarihimizi UNIX formatına çevirmemize yaramaktadır.
SELECT * FROM TABLO UNIX_TIMESTAMP(zaman) BETWEEN 'tarih_1' AND 'tarih_2'
şimdilik bu kadar yeterli diye düşünüyorum. Umarım faydalanacağınız bir içerik olmuştur . Hepinize bol bol geliştirmeler dileğiyle …
502 views