MySQL получает дату n дней назад как временную метку В MySQL, как я могу получить временную метку, скажем, 30 дней назад? Что-то вроде: select now() - 30 Результат должен вернуть отметку времени. Ответ 1 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 Ответ 2 Я думаю, что вы после DATE_SUB. Ответ 3 Вы можете использовать: SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_)); Для временных меток unix или: SELECT addtime(now(),maketime(_,_,_)); Для стандартного формата даты MySQL. Ответ 4 Если вам нужны отрицательные часы с отметкой времени 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 ) ) ) вернется только положительный, часы
Ответ 1 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
Ответ 3 Вы можете использовать: SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_)); Для временных меток unix или: SELECT addtime(now(),maketime(_,_,_)); Для стандартного формата даты MySQL.
Ответ 4 Если вам нужны отрицательные часы с отметкой времени 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 ) ) ) вернется только положительный, часы