質問

現在のデータタイムで2行を挿入しようとしただけで、その日から経過時間を計算しました。 2回の挿入後のテーブルからの行と、now()関数を使用してタイムスタンプを設定します。

mysql> select * from pendingActivations;
+--------+------------+---------------------+
| userId | code       | timestamp           |
+--------+------------+---------------------+
|      2 | aaa        | 2010-08-23 17:04:02 |
|   2345 | alkfjkla23 | 2010-08-23 16:59:53 |
+--------+------------+---------------------+

userIDが2に等しい状態で行を挿入してから数分後、次のコマンドを実行しました。ここに結果があります:

mysql> select userId, code, timestamp, NOW() - timestamp as elapsedSeconds from pendingActivations;
+--------+------------+---------------------+----------------+
| userId | code       | timestamp           | elapsedSeconds |
+--------+------------+---------------------+----------------+
|      2 | aaa        | 2010-08-23 17:04:02 |     136.000000 |
|   2345 | alkfjkla23 | 2010-08-23 16:59:53 |    4585.000000 |
+--------+------------+---------------------+----------------+

2列目には、ちょうど1時間、16分25秒が経過したことを示す非常に大きいElapsedSeconds値をどのように持っているのだろうか。

これがテーブル構造です:

mysql> describe pendingActivations;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| userId    | int(11)     | NO   | PRI | NULL    |       | 
| code      | varchar(32) | NO   | UNI | NULL    |       | 
| timestamp | datetime    | NO   |     | NULL    |       | 
+-----------+-------------+------+-----+---------+-------+

何かアイデアや説明はありますか?

役に立ちましたか?

解決

問題を説明することはできませんが、 - 操作は、結果を予期しない形式で返します(マイクロ秒または10分の1を含むかもしれませんか?)

私は使うだろう TIMEDIFF().

戻り値 expr1expr2 時間価値として表されます。 expr1とexpr2は時間または日付式の式ですが、どちらも同じタイプでなければなりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top