Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Datumsformat – was Sie wissen müssen

MySQL ist abgeleitet von „My“ – der Tochter des Mitbegründers – und SQL – Structured Query Language. Es ist ein Open-Source-Typ eines relationalen Datenbankverwaltungssystems. Dieses relationale Datenbanksystem hilft bei der Organisation von Daten in verknüpfbaren Tabellen und ermöglicht so strukturelle Beziehungen zwischen verschiedenen Datensätzen.

MySQL-Datum ist einer der temporalen Datentypen, der Datenwerte zusammen mit anderen Datentypen wie numerischen Datentypen, String-Datentypen, booleschen Datentypen, Datum und Uhrzeit und räumlichen Datentypen verwalten kann.

Die Funktion DATE_FORMAT() wird in MySQL verwendet, um das Datum mit dem angegebenen Formatwert zu formatieren. Wenn beispielsweise ein Datum angegeben wird, formatiert die Funktion es entsprechend den angegebenen Parametern.

MySQL-Datumsformat-Syntax

DATE_FORMAT(Datum, Format)

Die obige Syntaxfunktion akzeptiert zwei Parameter, wie unten gezeigt:

  • date – Gibt das zu formatierende Datum an
  • format – Es definiert das Format, das verwendet werden soll, um das Datum zu formatieren

Nachfolgend finden Sie eine Liste von Formaten, mit denen Sie sich im Umgang mit der Datumsfunktion vertraut machen sollten.

  • %a – dieses Format zeigt den Namen des Wochentags an. es ist von Sonntag bis Samstag begrenzt.
  • %b – dieses Formatsymbol zeigt den Monatsnamen. es ist von Januar bis Dezember eingeschränkt.
  • %c – dieses Formatsymbol gibt den numerischen Monatsnamen an. er ist auf 0 bis 12 begrenzt
  • %D – dieses Formatsymbol zeigt den numerischen Wert des Tages des Monats, gefolgt von einem Suffix wie 1. oder 2..
  • %e – dieses Formatsymbol zeigt den numerischen Wert des Tages des Monats. er ist auf 0 bis 31 begrenzt
  • %f – dieses Formatsymbol zeigt Mikrosekunden an. er ist von 000000 bis 999999 begrenzt.
  • %H – dieses Formatsymbol gibt die Stunde an. Es ist von 00 bis 23 Uhr begrenzt.
  • %i – dieses Formatsymbol zeigt die Minuten an. er ist von 00 bis 59 begrenzt.
  • %j – dieses Formatsymbol zeigt den Tag des Jahres an. es ist von 001 bis 366 begrenzt.
  • %M – dieses Formatsymbol gibt den Monatsnamen an. es ist von Januar bis Dezember begrenzt
  • %p – dieses Formatsymbol zeigt PM oder AM
  • %S – dieses Formatsymbol zeigt Sekunden an. er ist auf 00 bis 59 begrenzt
  • %U – dieses Formatsymbol zeigt Wochentage, an denen Sonntag der erste Tag ist. Es ist von 00 bis 53 begrenzt.
  • %W – dieses Formatsymbol zeigt die Wochentage von Sonntag bis Samstag
  • %Y – dieses Formatsymbol zeigt den Jahreswert als 4-stellige Zahl

Die oben aufgeführten Formate geben ein formatiertes Datum zurück.

Beispiel 1: 

Um das Jahr aus dem aktuellen Datum zu extrahieren oder anzuzeigen, führen wir die folgende Befehlszeile aus:

SELECT DATE_FORMAT("2021-09-25", "%Y");
Ausgabe:
Beispiel 2:

Extrahieren Sie den Monatsnamen aus einem bestimmten Datum wie unten gezeigt:

25.09.2021

SELECT DATE_FORMAT("2021-09-25", "%M");
Ausgabe:
Beispiel 3:

Extrahieren Sie Stunden und Minuten aus dem unten angegebenen Datum:

25.09.2021

SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Ausgabe:
Beispiel 4: 

Extrahieren Sie den Tag des Monats numerisch aus dem unten angegebenen Datum:

25.09.2021

SELECT DATE_FORMAT("2021-09-25", "%D");
Ausgabe:
Beispiel 5:

Extrahieren Sie den Monat, den Tag und das Jahr jeweils aus dem hier angegebenen Datum:

25.09.2021

SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Ausgabe:

MySQL-Datum verwendet das Format; JJJJ-MM-TT um einen Datenwert zu speichern, und dieses Format ist normalerweise ohne Erlaubnis, es zu ändern, festgelegt. Für die Speicheranforderungen von MySQL würde es zum Speichern eines einzelnen Datumswerts etwa 3 Bytes verwenden und einen Datumswert haben, der von 1000-01-01 bis 9999-12-31 reicht. Daher kann ein Benutzer, der einen Datumsbereich aus diesen Parametern speichern muss, nur über Ganzzahlen möglich sein. Dieser Prozess ist jedoch ziemlich anstrengend und würde erfordern, dass Sie drei Spalten erstellen, eine für das Jahr, eine weitere für den Monat und die letzte für den Tag.

Dies wird oft nicht empfohlen, um es in den meisten Fällen zu versuchen, wenn Sie das Datumsformat ändern möchten. Das Deaktivieren des „strikten Modus“ hilft dabei, jedes ungültige Datum in den „Null-Datumswert“ zu konvertieren. Ein ungültiges Datum würde in diesem Fall nicht dem standardmäßigen MySQL-Datumsformat entsprechen, z. B. 2020-01-24. Dies würde auch die Notwendigkeit schaffen, „gespeicherte Funktionen“ zu entwickeln, die die neu erstellten Datumsfunktionen von MySQL reproduzieren würden.

MySQL-Datumswerte mit zweistelligen Jahreszahlen

MySQL akzeptiert zweistellige Jahreszahlen nur unter den folgenden Bedingungen:

  1. Jahreswerte zwischen 00-69 werden in 2000-2069 konvertiert
  2. Jahreswerte zwischen 70-79 werden in 1970-1999 umgerechnet

Es ist jedoch ratsam, die Verwendung von zweistelligen Datumswerten zu vermeiden, da dies mehrdeutig ist.
Hier ist ein Beispiel. Es wird eine Tabelle mit dem Namen „Personen“ erstellt und enthält  „Datentypen“-Spalten:

CREATE TABLE IF NOT EXISTS people ( JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_SALARY decimal(6,0) DEFAULT 8000, MAX_SALARY decimal(6,0) DEFAULT NULL)ENGINE =InnoDB;

Die folgende Funktion fügt eine Zeile in die Tabelle „Personen“ ein:

INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');

Jetzt „Daten abfragen“ aus der Tabelle „Personen“

SELECT * FROM people;

Nachdem Sie die obigen Befehle ausgeführt haben, können Sie nun die Option für das zweistellige Jahresformat verwenden, um Daten in die Tabelle „Personen“ einzufügen:

INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');

„01“ wurde in der ersten Zeile als Jahr verwendet und liegt zwischen (Bereich 00-69). MySQL konvertiert es dann in 2001, während in der zweiten Zeile die Verwendung von „84“ in den Bereich (70-99) fällt und MySQL es in 1984 konvertiert.

MySQL-Datumsfunktionen

MySQL bietet und verwendet häufig mehrere Datumsfunktionen, die Benutzern helfen, ihre Daten effektiver und schneller zu bearbeiten.
Zum Beispiel hilft die Verwendung der Funktion „NOW( )“, das aktuelle Datum und die aktuelle Uhrzeit abzurufen:

JETZT AUSWÄHLEN( );

Um nur den Datumsteil einer „DATETIME“ zu erhalten, verwenden Sie nur die „DATE( )“-Funktion:

DATUM WÄHLEN (JETZT( ) );

Um das aktuelle Systemdatum zu erhalten, verwenden Sie CURDATE ( ):

SELECT CURDATE();

Die Funktion „DATE_FORMAT“ kann verwendet werden, um den Datumswert in diesem Format zu formatieren; mm/tt/jjjj. Es verwendet das Datumsformatmuster %m/%d/%Y

SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');

Wenn Sie die Anzahl der Tage zwischen zwei Datumswerten berechnen möchten, verwenden Sie die Funktion „DATEDIFF“:

mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') Tage;

Die Verwendung der Funktion „DATE_ADD“ hilft, mehrere Jahre, Monate, Wochen oder Tage hinzuzufügen:

SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);

Die Funktion „DATE_SUB“ kann auch verwendet werden, um ein Datumsintervall zu subtrahieren:

SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);

Die Verwendung der entsprechenden Funktion in Bezug auf Datum, Monat, Quartal und Jahr hilft Ihnen, den genauen Tag, Monat usw. für einen Datumswert wie unten gezeigt zu erhalten:

SELECT DAY('2000-12-31') Tag,
MONAT('2000-12-31') Monat
QUARTER('2000-12-31') Quartal,
JAHR('2000-12-31') Jahr

Tag ǀ Monat ǀ Quartal ǀ Jahr ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Auf wöchentliche Informationen zu verwandten Funktionen kann zugegriffen werden über:

SELECT
WEEKDAY('2000-12-31') Wochentag,
WOCHE( '2000-12-31') Woche,
WEEKOFTHEYEAR('2000-12-31') Woche des Jahres;

Wochentag ǀ Woche ǀ Woche des Jahres ǀ
6 ǀ 53 ǀ 52 ǀ

Die Wochenfunktion gibt immer eine Wochennummer mit einem nullbasierten Index zurück. Sie müssen ein zweites Argument oder eine „0“ übergeben, um dies zu verhindern. Wenn Sie „1“ übergeben, wird die Wochennummer „1-indiziert“ zurückgegeben.

WEEKDAY('2000-12-31') Wochentag,
WEEK( '2000-12-31', 1) Woche,
WEEKOFTHEYEAR('2000-12-31') Wochedes Jahres;

Wochentag ǀ Woche ǀ Woche des Jahres ǀ
6 ǀ 52 ǀ 52 ǀ

Schlussfolgerung

Dies ist ein kurzes Artikel-Tutorial, das das Thema MySQL-Datumsformat behandelt. Wir hoffen, dass alle Aspekte, mit denen Sie sich über MySQL-Datumsformate vertraut machen wollten, abgedeckt wurden. Denken Sie daran, über den Kommentarbereich einen Daumen nach oben zu geben, wenn Sie den Artikel hilfreich finden.