Heim  >  Fragen und Antworten  >  Hauptteil

Warum gibt TIMESTAMPDIFF immer null zurück?

Ich möchte Benutzer darüber informieren, dass der Server gewartet wird, und ihnen die verbleibende Zeit bis zum Abschluss der Wartung mitteilen. Allerdings habe ich Probleme mit der MySQL-Abfrage.

Dies ist die Abfrage, die ich verwende:

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'

Leider gibt die Abfrage immer null zurück.

Die Tabellenstruktur und Daten finden Sie unten als Referenz.

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_ WERT_ {"END_DATE":"2021-01-0723:46:53"}
Wartung

Können Sie mir helfen herauszufinden, was ich möglicherweise übersehen habe?

Vielen Dank im Voraus.

P粉795311321P粉795311321404 Tage vor660

Antworte allen(1)Ich werde antworten

  • 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';

    Antwort
    0
  • StornierenAntwort