Rundungsvorgang des Datums-/Uhrzeitfelds in MySQL

Rundungsvorgang des Datums-/Uhrzeitfelds in MySQL

Vorwort

Wäre ich nicht in die Falle getappt, hätte ich vermutlich nicht gewusst, dass das Zeitfeld aufgerundet wird.

1. Hintergrund

Die maximale Tageszeit wird über Java-Code ermittelt und dann in der Datenbank gespeichert. Das Datenbanktabellenfeldformat datetime behält 0 Bits bei.

jetzt.mit(LokaleZeit.MAX)

Eine kleine Codezeile, um das maximale Datum von heute zu erhalten.

Ich habe die Datenbank geprüft und festgestellt, dass dort tatsächlich die Uhrzeit des nächsten Tages gespeichert war.

Es sieht aus, als wäre es abgerundet!

2. Simulationstest

Schauen Sie sich nach der Ausführung das Protokoll an:

Es verwendet 2021-09-28T23:59:59.999999999, aber seltsamerweise speichert die Datenbank 2021-09-29 00:00:00.

Versuchen Sie, SQL direkt zu verwenden:

Das... ist tatsächlich abgerundet.

Probieren Sie stattdessen MariaDB!

Docker Pull MariaDB

docker run -d --name mariadb -p 33306:33306 -e "MYSQL_ROOT_PASSWORD=root" mariadb

docker exec -it mariadb bash

MariaDB verwirft zusätzliche Ziffern direkt!

3. Fazit

Wenn der an die MySQL-Zeit übergebene Wert den Genauigkeitsbereich überschreitet, wird er gerundet.

Wenn der an MariaDB übergebene Zeitwert den Genauigkeitsbereich überschreitet, wird er direkt verworfen.

Ich bin auf eine kleine Grube getreten. Und zum Schluss: Hartcodieren!

jetzt.mit(LocalTime.parse("23:59:59"))

Zusammenfassen

Dies ist das Ende dieses Artikels über das Runden von Datums-/Uhrzeitfeldern in MySQL. Weitere Informationen zum Runden von Datums-/Uhrzeitfeldern in MySQL finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • SQL-Übung: Datenoperation für Benutzerinformationen in einer Online-Mall-Datenbank
  • MySQL-Lerndatenbankbetrieb DML ausführliche Erklärung für Anfänger
  • MySQL lernen, Datenbanken und Tabellen-DDL zu erstellen und zu bedienen für Anfänger
  • Detaillierte Erklärung des MySQL-Datenbank-LIKE-Operators in Python
  • SQL-Übung: Produktkategorie-Datenoperation in der Online-Shopping-Datenbank

<<:  Methoden für JavaScript-String-Objekte

>>:  Tägliche Studiennotizen im HTML-Designmuster

Artikel empfehlen

Detailliertes Beispiel der CSS3-Boxschatteneigenschaft

CSS3 – Schatten hinzufügen (mithilfe von Boxschat...

el-table in vue realisiert automatischen Deckeneffekt (unterstützt feste)

Inhaltsverzeichnis Vorwort Umsetzungsideen Wirkun...

Implementierung eines einfachen Chatroom-Dialogs basierend auf WebSocket

In diesem Artikel finden Sie den spezifischen Cod...

Analyse der Gründe, warum das MySQL-Indexsystem den B + -Baum verwendet

Inhaltsverzeichnis 1. Was ist ein Index? 2. Warum...

Probleme mit Vue, das die Homepage von Bibibili imitiert

Technische Struktur Das Projekt ist in zwei Teile...

Warum ich Nginx als Backend-Server-Proxy empfehle (Gründeanalyse)

1. Einleitung Unsere realen Server sollten nicht ...

Mehrere Methoden zum Ändern des MySQL-Root-Passworts (empfohlen)

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Wie viele gängige Schleifen zur Array-Traversierung in JS kennen Sie?

Vorwort Als grundlegende Datenstruktur spielen Ar...