سؤال

لقد حاولت فقط إدراج صفين مع DateTime الحالي ثم حساب الوقت المنقضي منذ ذلك التاريخ. فيما يلي الصفوف من طاولتي بعد اثنين من الإدراج واستخدام وظيفة الآن () لتعيين الطابع الزمني:

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 |
+--------+------------+---------------------+----------------+

أتساءل كيف أن الصف الثاني لديه قيمة ضخمة ElapsedSeconds والتي تشير إلى أن 1 ساعة و 16 دقيقة و 25 ثانية قد مرت ، على الرغم من أنه من السهل أن تمر حوالي 5 دقائق فقط.

هنا هيكل الجدول:

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    |       | 
+-----------+-------------+------+-----+---------+-------+

أي أفكار و/أو تفسيرات؟

هل كانت مفيدة؟

المحلول

لا أستطيع أن أشرح المشكلة ، لكني أظن - تقوم العملية بإرجاع النتيجة إلى تنسيق غير متوقع (ربما بما في ذلك microseconds أو Tenths؟)

سأستخدم TIMEDIFF().

عائدات expr1expr2 أعرب عن قيمة زمنية. Expr1 و Expr2 هما تعبيرات الوقت أو التاريخ والوقت ، ولكن يجب أن يكون كلاهما من نفس النوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top