sql >> データベース >  >> RDS >> Mysql

MySQL:2つのタイムスタンプの差を秒単位で取得する方法

    TIMEDIFF() および TIME_TO_SEC() 次のように機能します:

    SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
    +------+
    | diff |
    +------+
    |   60 |
    +------+
    1 row in set (0.00 sec)
    

    を使用することもできます。 UNIX_TIMESTAMP() @Amberが提案しました 他の答えで:

    SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') - 
           UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
    +------+
    | diff |
    +------+
    |   60 |
    +------+
    1 row in set (0.00 sec)
    

    TIMESTAMPを使用している場合 データ型、UNIX_TIMESTAMP()だと思います TIMESTAMPなので、ソリューションは少し速くなります 値は、エポックからの秒数を表す整数としてすでに格納されています(ソース )。 docs

    UNIX_TIMESTAMP()の場合 TIMESTAMPで使用されます 列の場合、関数は内部タイムスタンプ値を直接返します。暗黙の「文字列からUNIXタイムスタンプ」への変換はありません。

    TIMEDIFF() returnデータ型のTIME TIME 値の範囲は「-838:59:59」から「838:59:59」(約34。96日)です



    1. LIMIT句でbindValueメソッドを適用するにはどうすればよいですか?

    2. DBMS_STATSを使用したユーザー定義ルーチン、パ​​ートII

    3. .dbファイルを別の.apkandroidに添付する方法

    4. 1つのフィールドをCLOBとして使用するOracle挿入スクリプトを作成するにはどうすればよいですか?