首页  >  问答  >  正文

为什么 TIMESTAMPDIFF 总是返回 null?

我想通知用户服务器正在进行维护,并向他们提供维护完成之前的剩余时间。但是,我在 MySQL 查询中遇到了问题。

这是我使用的查询:

SELECT TIMESTAMPDIFF(SECOND, NOW(), STR_TO_DATE(JSON_EXTRACT(VALUE_, '$.END_DATE'), '%Y-%m-%d %H:%i:%s')) AS SECONDS_LEFT FROM SETTINGS WHERE KEY_ = 'MAINTENANCE'

不幸的是,查询总是返回空值。

下面是表格结构和数据供您参考。

CREATE TABLE `settings` (
  `KEY_` char(50) COLLATE utf8_unicode_ci NOT NULL,
  `VALUE_` json NOT NULL,
  UNIQUE KEY `KEY_` (`KEY_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
KEY_ VALUE_ {"END_DATE":"2021-01-0723:46:53"}
维护

您能帮我找出我可能错过的内容吗?

提前谢谢您。

P粉795311321P粉795311321404 天前662

全部回复(1)我来回复

  • P粉156983446

    P粉1569834462023-09-12 21:13:06

    已解决。

    SELECT TIMESTAMPDIFF(SECOND, NOW(), STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT(VALUE_, '$.END_DATE')), '%Y-%m-%d %H:%i:%s')) AS SECONDS_LEFT FROM SETTINGS WHERE KEY_ = 'MAINTENANCE';

    回复
    0
  • 取消回复