mysql:日付値を差し引くときの奇妙な結果
-
30-09-2019 - |
質問
現在のデータタイムで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()
.
戻り値
expr1
–expr2
時間価値として表されます。 expr1とexpr2は時間または日付式の式ですが、どちらも同じタイプでなければなりません。
所属していません StackOverflow