Di MySQL, bagaimana saya mendapatkan stempel waktu dari, katakanlah 30 hari yang lalu?
Sesuatu seperti:
select now() - 30
Hasilnya harus mengembalikan stempel waktu.
Di MySQL, bagaimana saya mendapatkan stempel waktu dari, katakanlah 30 hari yang lalu?
Sesuatu seperti:
select now() - 30
Hasilnya harus mengembalikan stempel waktu.
Jawaban:
DATE_SUB akan melakukan sebagian tergantung pada apa yang Anda inginkan
mysql> SELECT DATE_SUB(NOW(), INTERVAL 30 day);
2009-06-07 21:55:09
mysql> SELECT TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
2009-06-07 21:55:09
mysql> SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
1244433347
Anda bisa menggunakan:
SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));
Untuk stempel waktu unix atau:
SELECT addtime(now(),maketime(_,_,_));
Untuk format tanggal standar MySQL.
Jika Anda membutuhkan jam negatif dari cap waktu
mysql>SELECT now( ) , FROM_UNIXTIME( 1364814799 ) , HOUR( TIMEDIFF( now( ) , FROM_UNIXTIME( 1364814799 ) ) ) , TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) )
2013-06-19 22:44:15 2013-04-01 14:13:19 1904 -1904
ini
TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) )
akan mengembalikan nilai negatif dan positif, jika Anda perlu menggunakan x> this_timestamp
tapi ini
HOUR( TIMEDIFF( now() , FROM_UNIXTIME( 1364814799 ) ) )
akan kembali hanya positif, jam