2010-12-31 12 views
1

私は何時間も古いものを使ってクエリを実行しようとしています。だから、誰かが現在の日付/時間から何時間も古いものを得るための素早い方法を知っていればいいと思っています。比較する日時フィールド。何時間前の何かを得るためのMySQLの最良の方法は何ですか?

例:このリンクは5時間古いですが、このリンクは27時間古い

グラシアス:)

+1

完全な精度で仕分けをしない理由、そして、あなたの表示層に「時間前」に変換しますか? –

答えて

0

であるそれはあなたが丸めをしたいかに依存しますが、おそらくあなただけTIMESTAMPDIFF

select TIMESTAMPDIFF(HOUR,'2010-12-31 12:30:43','2010-12-31 14:11:12') as hours_old; 
+-----------+ 
| hours_old | 
+-----------+ 
|   1 | 
+-----------+ 

select TIMESTAMPDIFF(HOUR,'2010-12-30 12:30:43','2010-12-31 14:11:12') as hours_old; 
+-----------+ 
| hours_old | 
+-----------+ 
|  25 | 
+-----------+ 
を使用することができます

これをユーザーに表示したい場合は、差を秒単位に変換する方が良い場合があります(select TIMESTAMPDIFF(SECOND ...))。表示するコードに条件付きでフォーマットして、「1分前」「2時間前」、 6日前 "などとなります。

1
SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(you_date_time))/3600 
関連する問題