gpt4 book ai didi

MYSQL TIMESTAMPDIFF 函数不起作用

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

我正在尝试在我的一个查询中使用 TIMESTAMPDIFF 函数,这让我很头疼。

表格

id  |  web_address    |  timeperiod  |  timeperiod_exp

1 | www.google.com | 1564692614 | 1564779014

1564692614 = GMT: Thursday, August 1, 2019 8:50:14 PM

1564779014 = GMT: Friday, August 2, 2019 8:50:14 PM

问题是什么?

正如人们所看到的,这两个时间戳之间的差异恰好是 1 天,但没有返回任何记录。

SELECT * FROM mytable WHERE TIMESTAMPDIFF(DAY, timeperiod, timeperiod_exp) >= 1

fiddle 在哪里?

https://www.db-fiddle.com/f/udmrC2xdvrEEKGxEF7ty84/7

应该做什么?

请看一下上面的 fiddle ,并建议应该修改什么或使用其他函数来代替 timestampdiff。

最佳答案

查看 TIMESTAMPDIFF() 的文档

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Returns datetime_expr2 − datetime_expr1, where datetime_expr1 and datetime_expr2 are date or datetime expressions. One expression may be a date and the other a datetime

如您所见,它期望参数的类型为 DATE 或 DATETIME。但是您将时间戳存储为整数。

所以要么使用 FROM_UNIXTIME()将整数时间戳转换为 DATETIME:

SELECT *
FROM mytable
WHERE TIMESTAMPDIFF(DAY, FROM_UNIXTIME(timeperiod), FROM_UNIXTIME(timeperiod_exp)) >= 1

db-fiddle

或者只使用简单的算术(因为我们知道一天有多少秒):

SELECT *
FROM mytable
WHERE (timeperiod_exp - timeperiod) >= 60*60*24

db-fiddle

关于MYSQL TIMESTAMPDIFF 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57340421/

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