ใน MySQL ฉันจะรับการประทับเวลาได้อย่างไรเมื่อ 30 วันก่อน
สิ่งที่ต้องการ:
select now() - 30
ผลลัพธ์ควรส่งคืนการประทับเวลา
ใน MySQL ฉันจะรับการประทับเวลาได้อย่างไรเมื่อ 30 วันก่อน
สิ่งที่ต้องการ:
select now() - 30
ผลลัพธ์ควรส่งคืนการประทับเวลา
คำตอบ:
DATE_SUB จะดำเนินการบางส่วนโดยขึ้นอยู่กับสิ่งที่คุณต้องการ
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
คุณสามารถใช้:
SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));
สำหรับการประทับเวลา Unix หรือ:
SELECT addtime(now(),maketime(_,_,_));
สำหรับรูปแบบวันที่ MySQL มาตรฐาน
หากคุณต้องการชั่วโมงติดลบจากการประทับเวลา
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
นี้
TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) )
จะส่งคืนค่าลบและบวกหากคุณต้องการใช้ x> this_timestamp
แต่นี่
HOUR( TIMEDIFF( now() , FROM_UNIXTIME( 1364814799 ) ) )
จะกลับมาเป็นบวกชั่วโมงเท่านั้น