2017-07-07 8 views
-1

開始日、終了日、開始時刻、終了時刻の4つの列があります。私は違い、すなわちエンドタイム - 開始時間を見つける必要があります。ただし、開始日と終了日を考慮する必要があります。例:開始日= 7/6/2017、開始時刻= 1:00、終了日7/7/2017終了時刻= 2:00の場合は25時間です..日間の時間差を計算する

私はする必要がありますこれは、過去1週間以内のすべての開始日と終了日に適用されます。誰かがこれで私を助けることができますか?それは本当に役立つだろう。

答えて

0

UNIX_TIMESTAMP()STR_TO_DATE()を使用して、日付と時刻をUnixタイムスタンプ(秒単位)に変換します。例:UNIX_TIMESTAMP(STR_TO_DATE("7/6/2017 1:00", '%d/%m/%Y %H:%i'))

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date

そして、秒単位の時間間隔を取得するために、両方のタイムスタンプに基本的なsubstractionを行います。

また、一般的な推奨として、日付を適切なMySQL Datetimeカラムタイプ(より良いSQLサポート)に変換するか、UNIXのintタイムスタンプ(より速い差分)として、またはISOフォーマットの文字列として変換することをお勧めします。 GMTデータ(人の読みやすさ、ひどいルックアップ)

+0

これらは4つの異なる列です。日付列は日付形式で、時刻列は時刻データ型です。日付と時刻の両方を含む同じ列ではありません。 – user3800888

+0

'CONCAT()'を使って一つの文字列を作ることができます。 – Fabien

+0

あなたは私に例を挙げることができますか?だから、私は開始日時と開始時刻を連結し、終了日と終了時刻について同じことをしてから、timestampdiffを使用すると言っていますか? – user3800888

関連する問題