開始日が 2012 年 10 月 17 日で、終了日が 2012 年 10 月 18 日であるとします。
更新日を超えた行を選択したくないですか?
前もって感謝します!
これが動作デモです。
http://sqlfiddle.com/#!2/d41d8/2869
SELECT UNIX_TIMESTAMP('2012-10-19') - UNIX_TIMESTAMP('2012-10-18') as differece_seconds;
「日付引数を指定して UNIX_TIMESTAMP() を呼び出すと、引数の値が '1970-01-01 00:00:00' UTC からの秒数として返されます。」
単純に日付列で使用できます。確認してください: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
DATE/DATETIME
列が適切な列であり、質問の日付文字列ではないと仮定すると、次の値を減算しますUNIX_TIMESTAMP()
SELECT UNIX_TIMESTAMP(date1_column) - UNIX_TIMESTAMP(date2_column) AS difference_seconds
上記で投稿した文字列形式で日付を保存している場合 (これは悪い考えです)、STR_TO_DATE()
最初にそれらを適切な MySQL 日付に解析する必要があります。
SELECT UNIX_TIMSTAMP(STR_TO_DATE('17/10/2012','%d/%m/%%Y')) - UNIX_TIMSTAMP(STR_TO_DATE('18/10/2012','%d/%m/%%Y')) AS difference_seconds
select timestampdiff(second,'2012-10-16','2012-10-18');
出力は 172800 になります
UNIX_TIMESTAMP()
特定の日付のエポックからの秒数を取得するために使用します。次に、両方の値を減算します。
したがって、値 ( 一部DATE
または) がそれぞれおよびDATETIME
に格納されていると仮定すると、 use は次のようなものを使用できます。col1
col2
SELECT UNIX_TIMESTAMP( col1 ) - UNIX_TIMESTAMP( col2 ) AS diff FROM yourTable;