古いDATEDIFF()では、ユーザーは3つのパラメーターを使用できましたが、これを実行して、DATEDIFFから数日ではなく数時間を取得できるようにしました(投稿からの時間を表示しようとしています)。私のデータベースでは、TIMESTAMPとこのコード行を使用して値を取得していますが、追加のパラメーターがあるため、明らかに機能しません。 'hour'または 'hh'を削除すると、クエリが実行され、日数で値が返されます。
SELECT DATEDIFF(hour, CURDATE(), (SELECT Post_Date FROM Post_T WHERE pk_PostID = 1) )
時間単位の値を返す簡単な方法はありますか?
また、MYSQLバージョン5.5.20を使用しています。
ドキュメント で言うように:
DATEDIFF(expr1、expr2)
DATEDIFF()は、ある日付から別の日付までの日の値として表されるexpr1 –expr2を返します。 expr1およびexpr2は、日付または日付と時刻の式です。値の日付部分のみが計算に使用されます。
時間単位の結果が必要な場合は、 Timestampdiff を使用する必要があります
TIMESTAMPDIFF(unit、datetime_expr1、datetime_expr2)
Datetime_expr2 – datetime_expr1を返します。ここで、datetime_expr1およびdatetime_expr2は、日付または日時の式です。 1つの式は日付で、もう1つの式は日時です。日付値は、必要に応じて時間部分が「00:00:00」の日時として扱われます。結果の単位(整数)は、unit引数で指定されます。
単位引数は次のようになります。MICROSECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR.
あなたの場合、あなたは次のことができます:
SELECT TIMESTAMPDIFF(hour, CURDATE(), (SELECT Post_Date FROM Post_T WHERE pk_PostID = 1) )