Dans MySQL, comment puis-je obtenir un horodatage d'il y a 30 jours par exemple?
Quelque chose comme:
select now() - 30
Le résultat doit renvoyer un horodatage.
Dans MySQL, comment puis-je obtenir un horodatage d'il y a 30 jours par exemple?
Quelque chose comme:
select now() - 30
Le résultat doit renvoyer un horodatage.
Réponses:
DATE_SUB en fera une partie en fonction de ce que vous voulez
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
Vous pouvez utiliser:
SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));
Pour les horodatages unix ou:
SELECT addtime(now(),maketime(_,_,_));
Pour le format de date standard MySQL.
Si vous avez besoin d'heures négatives à partir de l'horodatage
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
ce
TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) )
renverra des valeurs négatives et positives, si vous devez utiliser x> this_timestamp
mais ça
HOUR( TIMEDIFF( now() , FROM_UNIXTIME( 1364814799 ) ) )
retournera seulement positif, heures