gpt4 book ai didi

mysql - CURRENT_TIMESTAMP - Updated_time 是否与 TIMESTAMPDIFF(SECOND, Updated_time, CURRENT_TIMESTAMP ) 相同

转载 作者:行者123 更新时间:2023-11-29 06:58:09 35 4
gpt4 key购买 nike

我写了一个sql来计算现在和上次更新时间之间的时间差异。首先,我只使用 CURRENT_TIMESTAMP - Updated_time 并发现结果在时间单位秒内看起来是正确的。但它并不稳定,有时结果会比正确的结果大得多。然后我更改为 TIMESTAMPDIFF(SECOND, Updated_time, CURRENT_TIMESTAMP ) ,一切正常。我的问题是两个表达式有什么区别?

最佳答案

CURRENT_TIMESTAMP()CURRENT_TIMESTAMPNOW() 的同义词,它给出您的当前时间。

编辑2:
在您的补充评论之后,我明白了您的要求。 (我已经删除了第一个编辑)这是不完整的并且有些不正确。

问题是:“解释 CURRENT_TIMESTAMP - Updated_time 的内部工作原理。”

解释(我更深入):CURRENT_TIMESTAMP 可以以“YYYY-MM-DD HH:MM:SS”或 YYYYMMDDHHMMSS 格式返回日期和时间。您可能会感到困惑的是,它可以根据上下文返回字符串或数字值。这里有一个数字上下文,就像有 -(减号)运算符一样。

`String context`
SELECT CURRENT_TIMESTAMP();
-> '2017-07-04 08:50:26'
OR
`numeric context`
SELECT NOW() + 0;
-> 20170704085026

-(减号)运算符似乎仅起作用:

mysql> insert into temp (first, second)
-> VALUES ('2017-07-01 03:00:00', '2017-07-01 03:01:00');
Query OK, 1 row affected (0.00 sec)

mysql> select first, second, second - first from temp;
+---------------------+---------------------+----------------+
| first | second | first - second |
+---------------------+---------------------+----------------+
| 2017-07-01 03:00:00 | 2017-07-01 03:00:37 | 37.000000 |
| 2017-07-01 03:00:00 | 2017-07-01 03:01:00 | 100.000000 |
+---------------------+---------------------+----------------+
2 rows in set (0.00 sec)

哦,不错!一分钟100秒?我不这么认为! :)。

要正确减去您的时间(如果 updated_time 以秒为单位):需要 TIME_TO_SEC:TIME_TO_SEC(CURRENT_TIMESTAMP) - Updated_time

关于mysql - CURRENT_TIMESTAMP - Updated_time 是否与 TIMESTAMPDIFF(SECOND, Updated_time, CURRENT_TIMESTAMP ) 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44756728/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com