mysql date format timestamp functions with examples
Dieses umfassende Tutorial enthält Syntax und Beispiele für MySQL-Datumsformat- und Zeitstempelfunktionen wie aktuelles Datum, Datum hinzufügen, Uhrzeit hinzufügen usw.:
In diesem Tutorial lernen wir die Datentypen von MySQL für Datum und Uhrzeit sowie die verschiedenen Funktionen von MySQL zur Bearbeitung von Datums- und Zeitwerten ausführlich kennen.
MySQL bietet eine Vielzahl von Funktionen / Dienstprogrammen, mit denen Sie verschiedene Vorgänge ausführen können, z. B. Datumsangaben hinzufügen und entfernen, den Unterschied zwischen zwei Datumsangaben ermitteln und bestimmte Teile des angegebenen Datums- / Uhrzeitwerts extrahieren können.
Was du lernen wirst:
- MySQL-Datumsformat und Zeitfunktionen
- Fazit
MySQL-Datumsformat und Zeitfunktionen
Diese Funktionen sind immer dann sehr wichtig, wenn in MySQL-Tabellen Operationen zu Datums- / Zeitspaltenwerten erforderlich sind.
Voraussetzungen
Zum Ausführen der im Lernprogramm verwendeten Beispiele benötigen Sie ein lokales Setup der MySQL-Installation.
= >> Informationen zur Installation von MySQL finden Sie in unserem Tutorial Hier.
Datentypen für Datum und Uhrzeit
Zu den Datentypen gehören YEAR, DATE, TIME, DATETIME und TIMESTAMP.
MySQL speichert Datums- und Zeitwerte unter Verwendung von 5 verschiedenen Datentypen, d. H. JAHR, DATUM, ZEIT, DATETIME und ZEITSTempel. Versuchen wir, diese in der folgenden Tabelle kurz zu verstehen, bevor wir uns eingehender mit den von MySQL bereitgestellten DATE FORMATS und DATETIME FUNCTIONS befassen.
Art | Syntax | Reichweite | Erinnerung | Format |
---|---|---|---|---|
% H. | Stunde - 00 - 23 | |||
JAHR | Wird verwendet, um nur den Jahresteil zu speichern colName JAHR | 1901 - 2155 | ein | ‘JJJJ’ |
DATUM | Wird verwendet, um nur den DATE-Teil zu speichern. colName DATUM | '1000-01-01' bis '9999-12-31' | 3 | ‘JJJJ-MM-TT’ |
ZEIT | Wird verwendet, um nur den TIME-Teil zu speichern. colName ZEIT colName ZEIT (n) n -> Genauigkeit oder Teilkomponente | '00: 00: 00' bis '23: 59: 59' | 3 + fraktionierter Speicher | 'Hh: mm: ss. (Bruch)' |
TERMINZEIT | Dient zum Speichern von DATE und TIME colName TERMINZEIT colName DATETIME (n) n -> Genauigkeit oder Teilkomponente | '1000-01-01 00: 00: 00.000000' bis '9999-12-31 23: 59: 59.999999' | 5 + fraktionierter Speicher | 'JJJJ-MM-TT hh: mm: ss. (Bruch)' |
TIMESTAMP | Dient zum Speichern von DATE und TIME colName TIMESTAMP colName Zeitstempel (n) n -> Genauigkeit oder Teilkomponente | '1970-01-01 00:00:01' UTC bis '2038-01-19 03:14:07' UTC. | 4 + fraktionierter Speicher | 'JJJJ-MM-TT hh: mm: ss. (Bruch)' |
Jetzt werden wir die Speicheranforderungen für die fraktionierte Speicherung verstehen. Für die Datentypen TIME, DATETIME und TIMESTAMP ist der verbrauchte Speicher abhängig von der angegebenen Bruchkomponente unterschiedlich.
Anzahl der gebrochenen Ziffern | Speicher (in Bytes) |
---|---|
0 | 0 |
1-2 | ein |
3-4 | zwei |
5-6 | 3 |
Unter Verwendung der obigen Tabelle zum Beispiel, wenn wir einen Spaltentyp wie - TIME (5) haben.
Dann wäre der verwendete Gesamtspeicher => Speicher, der vom TIME-Datentyp verwendet wird + Speicher, der von 5 Bruchkomponenten verwendet wird => 3 + 3 => 6 Bytes
Lassen Sie uns alle diese Datentypen als Teil einer einzelnen Tabelle veranschaulichen und die Werte anzeigen, die jedem der Typen zugewiesen sind.
CREATE TABLE datetime_illustration(year_col YEAR, date_col DATE, time_col TIME, time_col_fractional TIME(2), datetime_col DATETIME, datetime_col_fractional DATETIME(6), timestamp_col TIMESTAMP, timestamp_col_fractional TIMESTAMP(6))
Fügen Sie mit der Funktion 'now ()', dem aktuellen Zeitstempel, eine einzelne Zeile in die Tabelle ein. Beachten Sie, dass bei Verwendung dieser Funktion je nach Datentyp der Spalte nur der erforderliche Teil des aktuellen Datums und der aktuellen Uhrzeit abgeschnitten / eingefügt wird.
insert into datetime_illustration values (now(), now(), now(), now(), now(), now(), now(), now()); select * from datetime_illustration
Sehen wir uns nun den Inhalt der Tabelle an, um die Daten in verschiedenen Spalten zu analysieren.
select * from datetime_illustration
Daher fassen wir die obigen Daten wie folgt zusammen:
- Allen Spalten wurden Werte für die Datentypen zugewiesen. zum Beispiel, Für die erste Spalte - JAHR - haben wir zwar die Funktion 'now ()' eingefügt, die den aktuellen Zeitstempel darstellt. Der eingefügte Wert ist jedoch nur der Jahresteil der aktuellen Datumszeit - d. h. 2020.
- Die Funktion now () gibt die aktuelle datetime im Format zurück - TT: MM: JJJJ HH: MM: SS
- Beachten Sie den Bruchteil in den Spaltennamen mit '_fractional'. Abhängig von der Anzahl der angegebenen Bruchstellen werden die Bruchwerte erfasst und angezeigt.
Automatische Initialisierung und Aktualisierung der Felder DATETIME und TIMESTAMP
In den realen Szenarien werden die DATETIME-Initialisierung und -Updates meistens automatisch konfiguriert.
Dies bedeutet im Allgemeinen, dass Tabellen 2 Spalten haben wie - Erstellt_Zeit und aktualisierte_Zeit .
Die Spalte 'created_time' ist so konfiguriert, dass sie beim Einfügen der Zeile den Wert der aktuellen Systemzeit annimmt, und die aktualisierte_time ist so konfiguriert, dass sie die aktuelle Systemzeit verwendet, wenn Aktualisierungen an einer bestimmten Zeile der Tabelle vorgenommen werden.
Bitte beachte, dass, Während des Einfügens der Zeile haben sowohl die Erstellungszeit als auch die Aktualisierungszeit den gleichen Wert. Alle nachfolgenden Aktualisierungen der Zeile würden dazu führen, dass das Feld update_time mit der aktuellen Systemzeit aktualisiert wird.
Versuchen wir, eine solche Tabelle zu erstellen, die sowohl automatisch initialisiert als auch aktualisiert wird.
Wir werden eine Tabelle mit dem Namen erstellen standard Preis Hier finden Sie die Felder 'Aktiensymbol', 'Preis' und 'Datum / Uhrzeit' - 'Erstellt_on' und 'Aktualisiert_An'.
create table stock_price(symbol varchar(100), price decimal(10,2), created_on datetime default current_timestamp, updated_on datetime default current_timestamp on update current_timestamp)
Fügen Sie einige Daten in die Tabelle ein:
insert into stock_price(symbol,price) values('AMZN','3000.10');
Sehen wir uns das Ergebnis an (beachten Sie, dass wir gerade Werte für Symbol und Preis eingegeben haben - die Datetime-Spalten 'created_on' und 'update_on' sollten automatisch initialisiert werden).
select * from stock_price
Wie bekomme ich einen Sicherheitsschlüssel für WLAN?
Versuchen Sie, den Aktienkurs für die AMZN-Aktie wie folgt zu aktualisieren:
update stock_price set price='3005.15' where symbol='AMZN'
Rufen Sie jetzt die Daten für die Tabelle erneut ab. Wir sollten sehen, dass der Wert der aktualisierten Zeit zu dem Zeitpunkt geändert wird, zu dem die Aktualisierung des Lagerpreises stattgefunden hat.
select * from stock_price
Aus dem obigen Beispiel können Sie nun ersehen, dass der Wert der Spalte 'update_on' auf den Aktualisierungszeitstempel aktualisiert wurde.
MySQL Datums- und Zeitfunktionen
MySQL bietet zahlreiche Funktionen für Spalten mit datums- und zeitbezogenen Datentypen.
Diese Funktionen werden im Allgemeinen verwendet, um
- Konvertieren Sie ein gespeichertes Datum in ein erforderliches Format, während Sie die Daten abfragen.
- Bearbeiten vorhandener Datums- und Uhrzeitfelder, z. B. Hinzufügen eines Intervalls zum aktuellen Wert der Spalte, Subtrahieren von Stunden von den aktuell eingestellten Werten usw.
- Extrahieren spezifischer Informationen aus den gespeicherten Werten, zum Beispiel, Extrahieren Sie nur den 'Datum' -Teil aus dem gespeicherten Wert und führen Sie weitere Filterungen / Operationen wie z GRUPPIERE NACH mit dem Datum usw.
In diesem Abschnitt sehen wir Beispiele für die am häufigsten verwendeten Datums- und Uhrzeitfunktionen.
>> Siehe Hier für eine vollständige Liste solcher Funktionen.
# 1) Aktuelles Datum und Uhrzeit abrufen
MySQL bietet viele praktische Funktionen / Konstantenwerte zum Abrufen der aktuellen Werte für Datum und Uhrzeit und wird im Allgemeinen beim Speichern von Werten in den Datums- / Uhrzeitspalten oder beim Abrufen eines bestimmten Bereichs von den aktuellen Datums- und Uhrzeitwerten verwendet.
a) curdate ()
Diese Funktion erhält das aktuelle Datum. Andere Synonyme der Funktion curdate () sind - CURRENT_DATE, CURRENT_DATE (), CURRENT_DATE ( gebrochene Ziffern )
Ein Beispiel für diese Funktion ist unten gezeigt:
select curdate(), CURRENT_DATE(), CURRENT_DATE
b) Curtime ()
Diese Funktion erhält die aktuelle Uhrzeit. Um einen Bruchteil (bis zu 6 Stellen) zu erhalten, geben Sie den Bruch in Klammern als Curtime an (3). Dies würde den aktuellen Wert der Systemzeit mit bis zu 3 Dezimalstellen abrufen.
Andere Synonyme der Funktion curtime () sind: CURRENT_TIME, CURRENT_TIME (), CURRENT_TIME ( gebrochene Ziffern )
select curtime(), CURRENT_TIME(), CURRENT_TIME, curtime(6), CURRENT_TIME(6)
c) jetzt ()
Diese Funktion ruft den aktuellen Zeitstempel ab. Geben Sie in den Klammern einen Bruchteil an. zum Beispiel, Jetzt (4) würde der aktuelle Zeitstempel bis zu 4 Dezimalstellen abrufen.
Andere Synonyme der Funktion now () sind: CURRENT_TIMESTAMP, CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP ( gebrochene Ziffern )
select now(), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, now(6), CURRENT_TIMESTAMP(6)
# 2) Addieren und Subtrahieren von Daten
MySQL bietet Funktionen zum Hinzufügen und Subtrahieren von Datums- und Zeitwerten zu einem vorhandenen Wert, der in der Spalte gespeichert ist oder zum Abfragen von Daten verwendet werden kann. Wir werden die Funktionen anhand von Beispielen verstehen.
Wir werden die folgende Tabelle verwenden, um eine Addition von Datum und Uhrzeit zur Subtraktion durchzuführen.
create table datetime_calc(datecol DATE, timecol TIME, datetimecol DATETIME(6));
Fügen Sie einige Einträge in die obige Tabelle mit den INSERT-Anweisungen ein, wie unten gezeigt:
insert into datetime_calc values(now(), now(), now(6)); insert into datetime_calc values(now(), now(), now(6));
Lassen Sie uns die obige Tabelle abfragen und die gespeicherten Daten anzeigen:
Zusätzlich zum Aktualisieren von Spalten in einer Tabelle können wir mithilfe der SELECT-Anweisung direkt eine Datums- / Uhrzeitmanipulation durchführen, indem wir einen bestimmten Datums- / Uhrzeit- oder Datums- / Uhrzeitwert anwenden.
a) ADDDATE ()
Wie der Name schon sagt, wird diese Funktion verwendet, um einem vorhandenen Datumswert ein Datum hinzuzufügen, das vom Typ DATE, DATETIME oder TIMESTAMP sein kann
Syntax:
ADDDATE(inputTimeValue/fieldName, noOfDays)
ADDDATE kann auch mit dem Intervallwert aufgerufen werden - dies können TAGE, WOCHE, STUNDE, MINUTE, ZWEITE usw. sein.
In diesem Fall würde sich die Syntax ändern in:
ADDDATE(inputTimeValue/fieldName, Interval intervalUnit)
Sehen wir uns einige Beispiele an, um dies besser zu verstehen.
SELECT ADDDATE('2020-08-15', 31); // output '2020-09-15'
Wenn ein ganzzahliger Wert als zweites Argument angegeben wird, wird er als die Anzahl der Tage behandelt, die zum angegebenen Datum hinzugefügt werden sollen.
Einige weitere Beispiele mit Intervall als - MONAT, STUNDE und WOCHE sind:
SELECT ADDDATE('2020-01-02', INTERVAL 1 MONTH); //output 2020-02-02
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 5 HOUR); //output 2020-01-02 17:11:11
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); //output 2020-01-09 12:11:11
Andere Beispiele für Intervalle könnten sein - MINUTE, SECOND, QUARTER usw.
Zum Aktualisieren einer Spalte der vorhandenen Tabelle zum Beispiel, Für die Tabelle haben wir 'datetime_calc' erstellt, wenn wir den Wert 'datecol' aktualisieren und allen Daten in der Spalte 10 Tage hinzufügen möchten. Wir könnten die Abfrage wie folgt verwenden:
update datetime_calc set datecol=ADDDATE(datecol, 30);
Verwenden Sie jetzt SELECT *, um alle Daten in der Tabelle datetime_calc anzuzeigen.
SELECT * FROM datetime_calc
In der obigen Ausgabe sehen wir, dass die Werte der Datecol-Spalte vom 25-08-2020 auf 24-09-2020 aktualisiert wurden, nachdem 30 Tage zu den vorhandenen Werten hinzugefügt wurden.
b) ADDTIME ()
Ähnlich wie bei ADD_DATE kann mit der Funktion ADD_TIME eine Zeitkomponente zu einer vorhandenen Spalte / einem Feld DATETIME, TIME oder TIMESTAMP oder einer bestimmten Eingabe hinzugefügt werden.
Syntax:
ADDTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
Beispiel:
SELECT ADDTIME('2020-01-02 12:11:11', '01:10:00'); // output 2020-01-02 13:21:11
Schauen wir uns ein Beispiel an, in dem wir eine Datums- / Uhrzeitspalte in einer Tabelle aktualisieren, indem wir allen Werten in dieser Spalte 5 Stunden hinzufügen. Hier ist eine Beispielabfrage:
update datetime_calc set datetimecol=ADDTIME(datetimecol, '05:00:00')
Tabellenausgabe vor:
// output '2020-08-25 05:53:37.851379' '2020-08-25 05:53:39.711515'
Tabellenausgabe nach:
// output '2020-08-25 10:53:37.851379' '2020-08-25 10:53:39.711515'
c) SUBDATE ()
SUBDATE ist ADDDATE genau ähnlich. Der einzige Unterschied besteht darin, dass SUBDATE das angegebene Intervall / Nr. Subtrahiert. von Tagen ab dem Spalten- / Feldwert.
Syntax:
SUBDATE(inputTimeValue/fieldName, noOfDays)
Schauen wir uns einige Beispiele an, um die Funktion SUBDATE () zu veranschaulichen.
SELECT SUBDATE('2020-08-15', 31); // output 2020-07-15
Das folgende Beispiel zeigt das Subtrahieren eines Intervalls, das in Stunden / Tagen, Woche usw. angegeben ist.
SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); // output 2019-12-26 12:11:11 SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 12 HOUR); // output 2020-01-02 00:11:11
d) SUBTIME ()
SUBTIME subtrahiert den in 'hh: mm: ss' angegebenen Zeitwert von einem bestimmten Datum / Uhrzeit- oder Zeitfeldwert.
Syntax:
SUBTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
Beispiele für die Funktion SUBTIME ():
SELECT SUBTIME('2020-01-02 12:11:11', '02:20:05'); // output 2020-01-02 09:51:06
# 3) Daten konvertieren
MySQL bietet eine Vielzahl integrierter Funktionen, von der Konvertierung von Daten von einem Format in ein anderes. Sehen wir uns die am häufigsten verwendeten Funktionen zum Konvertieren von Datumsangaben an.
a) CONVERT_TZ ()
Mit dieser Funktion wird das Datum von einer Zeitzone in eine andere konvertiert. Diese sind praktisch in Situationen, in denen angenommen wird, dass Ihre Daten in der UTC-Zeitzone gespeichert wurden und Sie während der Anzeige in eine Zeitzone Ihrer Wahl konvertieren möchten.
Beispielsweise, UTC in MET (Mitteleuropäische Zeit) umwandeln.
SELECT CONVERT_TZ('2004-01-01 12:00:00', 'UTC', 'MET');
Tipps / Hinweise
# 1) Um die Liste aller Zeitzonen in der MySQL-Systemdatenbank abzurufen, können Sie die folgende Abfrage ausführen und einen beliebigen Zeitzonennamen für die Konvertierung von einer Zeitzone in eine andere verwenden.
select * from mysql.time_zone_name
#zwei) Die Zeitzoneninformationen werden während der Installation der MySQL-Serverinstanz ausgefüllt. Wenn das Ergebnis der obigen Abfrage NULL ist, müssen Sie möglicherweise zuerst Zeitzonenwerte in die MySQL-Systemtabellen einfügen.
>> Folgen Sie diesem Verknüpfung für weitere Hilfe dazu.
b) FROM_UNIXTIME ()
Diese Funktion wird verwendet, um einen bestimmten UNIX TIMESTAMP in das MySQL-Datum / Uhrzeit-Format zu konvertieren.
SELECT FROM_UNIXTIME(1547430881); //output 2019-01-14 07:24:41
c) UNIX_TIMESTAMP
Diese Funktion wird verwendet, um eine bestimmte MySQL-Datumszeit in einen UNIX-Zeitstempel zu konvertieren.
SELECT UNIX_TIMESTAMP('2020-03-15 07:10:56.123') //output 1584236456.123
Der UNIX-Zeitstempel ist die Darstellung eines bestimmten Datums in Form von Sekunden, die seit dem 1. Januar 1970 (UTC) vergangen sind.
>> Siehe Hier Weitere Informationen zum UNIX-Zeitstempel.
# 4) Abrufen bestimmter Teile von DateTime-Spalten
Manchmal ist es erwünscht, einen bestimmten Teil des Datumswerts für einen Datums- / Uhrzeitfeldwert in der Tabelle abzurufen. Zum Beispiel Angenommen, Sie möchten die Nr. zählen. von Bestellungen und gruppieren Sie sie nach Tag, Woche, Monat usw.
Und im Allgemeinen werden diese Werte nicht als separate Spalten in der Tabelle gespeichert - zum Beispiel, Sie hätten nur eine Spalte wie - created_on, die ein Datum / Uhrzeit-Feld wäre und keine separaten Spalten wie - Datum, Monat, Jahr usw. hätte.
MySQL bietet viele nützliche Methoden, mit denen Sie den gewünschten Teil aus dem DateTime-Feld extrahieren können.
Angenommen, wir haben einen Datum / Uhrzeit-Wert als - „2020-03-15 07: 10: 56.123“
Schauen wir uns einige der weit verbreiteten Funktionen mit Beispielen an, die den obigen Datum / Uhrzeit-Wert verwenden.
a) Tag extrahieren
MySQL bietet die folgenden Funktionen zum Extrahieren von DAY-Informationen:
DATUM() - - Extrahieren Sie den Teil DATE () aus dem Feld DateTime.
Tools und Techniken für die Big-Data-Analyse
SELECT DATE('2020-03-15 07:10:56.123'); //output 2020-03-15
MONATSTAG() - - Extrahieren Sie den DAY-Teil von datetime. Es ist im Wesentlichen der Tag des Monats. Die Abkürzung für diese Funktion ist DAY ()
SELECT DAYOFMONTH('2020-03-15 07:10:56.123'); //output 15
WOCHENTAG () - Extrahiert den Index für den Wochentag - Werte zwischen 1 und 7.
SELECT DAYOFWEEK('2020-03-15 07:10:56.123'); //output 1
DAYOFYEAR () - Extrahiert den Tag in Bezug auf Nr. von Tagen in einem Jahr vergangen. Die Werte liegen zwischen 1 und 365 (oder 366, wenn es sich um ein Schaltjahr handelt).
SELECT DAYOFYEAR('2020-03-15 07:10:56.123'); //output 75
TAGNAME () - Extrahiert den Namen des Tages mit Werten zwischen Montag und Sonntag.
SELECT DAYNAME('2020-03-15 07:10:56.123'); //output Sunday
b) ZEIT extrahieren
MySQL bietet die folgenden Funktionen zum Extrahieren von TIME-Werten:
ZEIT() - Extrahiert den Zeitanteil im Format hh: mm: ss (mit Sekundenbruchteil, falls verfügbar).
SELECT TIME('2020-03-15 07:10:56.123'); //output '07:10:56.123'
STUNDE() - Extrahiert den Stundenanteil des Feldes / Wertes - Werte zwischen 1-24.
SELECT HOUR('2020-03-15 07:10:56.123'); //output 7
MINUTE () - Extrahiert den winzigen Teil der angegebenen Datums- / Uhrzeit - Werte zwischen 1 und 60.
SELECT MINUTE('2020-03-15 07:10:56.123'); //output 10
ZWEITE() - Extrahiert den Sekundenanteil der angegebenen Datums- und Uhrzeitangabe - Werte zwischen 1 und 60.
SELECT SECOND('2020-03-15 07:10:56.123'); //output 56
MIKROSEKUNDE () - Extrahiert den Mikrosekunden-Teil der angegebenen DateTime.
SELECT MICROSECOND('2020-03-15 07:10:56.123'); //output 123000
c) MONAT extrahieren
MONAT () - Extrahiert den Monatsindex. Werte zwischen 1 - 12.
SELECT MONTH('2020-03-15 07:10:56.123'); //output 3
MONTHNAME () - Extrahiert den Monatsnamen. Werte zwischen Januar und Dezember.
SELECT MONTHNAME('2020-03-15 07:10:56.123'); //output March
d) Extrahieren Sie WOCHE, JAHR und QUARTAL
WOCHE() - Extrahiert die WOCHE des Jahres für den angegebenen DateTime-Wert.
SELECT WEEK('2020-03-15 07:10:56.123'); //output 11
JAHR () - Extrahiert den JAHRES-Teil des Datums.
SELECT YEAR('2020-03-15 07:10:56.123'); //output 2020
QUARTAL() - Extrahiert das Quartal in Bezug auf das Jahr. Werte zwischen 1 und 4.
SELECT QUARTER('2020-03-15 07:10:56.123'); //output 1
Alle diese oben genannten Methoden werden hauptsächlich zur Datenanalyse und zur Vorhersage verwendet - zum Beispiel, Welche Tage des Monats waren die Nr. der höchsten Bestellungen usw.
# 5) Unterschied zwischen 2 Daten finden
Um den Unterschied zwischen zwei angegebenen Datums- / Uhrzeitfeldwerten zu ermitteln, bietet MySQL die Funktionen DATEDIFF () und TIMEDIFF ().
a) DATEDIFF ()
Gibt die Differenz zwischen 2 DateTime- (oder Datums-) Werten in Tagen zurück.
Syntax:
DATEDIFF(DateTime1, DateTIme2)
Sehen wir uns einige Beispiele für die Funktion DATEDIFF () an:
DATEDIFF () verwendet DateTime-Eingaben.
SELECT DATEDIFF('2020-01-05 12:11:11.11', '2020-01-03 14:11:11') //output 2
DATEDIFF () mit Datumseingaben.
SELECT DATEDIFF('2020-04-02', '2020-01-04') //output 89
DATEDIFF () verwendet Datumseingänge mit negativem Ausgang.
SELECT DATEDIFF('2020-04-02', '2020-04-05') //output -3
b) TIMEDIFF ()
Diese Funktion gibt die Differenz zwischen 2 Datums- / Zeit- (oder Zeit-) Werten zurück, ausgedrückt in 'hh: mm: ss', wobei ein optionaler Bruchteil abhängig von der Eingabe ist, mit der die Funktion TIMEDIFF () aufgerufen wurde.
Syntax:
TIMEDIFF(DateTime1, DateTIme2)
Gemäß der obigen Syntax wäre das Ergebnis der Funktion TIMEDIFF () die Zeit, die für den Ausdruck => als 'hh: mm: ss' angegeben wird DateTime1 - - DateTIme2
Bitte beachte, dass,
- Sowohl Ausdruck 1 als auch Ausdruck 2 sind vom gleichen Typ - d. H. Eine Datumszeit, eine andere gerade Zeit würde einen NULL-Wert zurückgeben.
- Ausdruck1 und Ausdruck2 können nicht nur Datumsangaben sein. Beispiel: DATEDIFF (2020-01-01, 2020-02-01) würde NULL zurückgeben.
Sehen wir uns einige Beispiele für die Funktion TIMEDIFF () an:
TIMEDIFF () mit DateTime-Eingaben.
SELECT TIMEDIFF('2020-01-4 12:11:11.11', '2020-01-03 12:11:11') //output 24:00:00.11
TIMEDIFF () mit Zeiteingaben.
SELECT TIMEDIFF('12:11:11.11', '02:12:11') //output 09:59:00.11
TIMEDIFF () gibt einen negativen Ausgang zurück.
SELECT TIMEDIFF('2020-01-01 12:11:11.11', '2020-01-03 12:11:11') //output -47:59:59.89
Bitte beachte, dass Sowohl DATEDIFF () als auch TIMEDIFF () können NEGATIVE Werte zurückgeben, wenn das erste Argument kleiner als das zweite ist - d. h. das erste Argument ist ein älterer dateTime-Wert im Vergleich zum zweiten.
# 6) Formatierungsdaten
Die Funktion DATE_FORMAT () konvertiert das Datum in das angegebene Format.
Beispielsweise: Konvertieren des gewünschten Datums in das Format MM / JJJJ.
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%m/%Y'); //output 03/2020
Sehen wir uns einige gängige Konventionen für die Verwendung von Formatspezifizierern an:
Format | Beschreibung |
---|---|
% Y. | Jahreswert - 4-stellig |
% Y. | Jahreswert - 2-stellig |
% M. | Monatsname wie Januar, Februar |
% m | Monatsname - numerisch |
% d | Monatstag |
% h | Stunde - 00 - 12 |
%ich | Protokoll |
% S. | Sekunden |
Je nach Anforderung können diese Formatspezifizierer verwendet und MySQL DateTime in das erforderliche Format konvertiert werden.
Beispiel: Die Konvertierung in das Format TT / MM / JJJJ kann wie folgt angegeben werden:
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d/%m/%Y'); //output 15/03/2020
>> Siehe Hier Eine vollständige Liste der von MySQL unterstützten Formatspezifizierer finden Sie hier.
Häufig gestellte Fragen
F # 1) Wie können wir den Jahresteil des in MySQL gespeicherten Datums ändern?
Antworten: Um den Jahreswert für ein bestimmtes Datum auf eine bestimmte Zahl zu aktualisieren, können wir die verwenden DATE_ADD Funktion und addieren Sie die Differenz zwischen dem aktuellen Datumsjahr und dem, das wir ändern möchten.
Zum Beispiel: Angenommen, wir haben das Datum „2020-03-15 07: 10: 56.123“ und möchten nur den Jahresanteil des Datums auf 2018 ändern.
- Wir können zuerst die Differenz zwischen dem zu aktualisierenden Jahr und dem tatsächlichen Jahr des Datums ermitteln. Dies könnte mit der YEAR-Funktion erreicht werden.
SELECT (2018 - year('2020-03-15 07:10:56.123')) //output -2
- Jetzt können wir diese -2 als Jahresintervall mit der Funktion DATE_ADD hinzufügen.
SELECT DATE_ADD('2020-03-15 07:10:56.123', INTERVAL -2 year) //output 2018-03-15 07:10:56.123000
Sie können oben sehen, dass wir gerade den Jahresteil des Datums geändert haben.
Dieselben Schritte können verwendet werden, wenn ein bestimmter Teil des Datums geändert werden muss. Beispiel: Monat, Tag usw.
F # 2) Wie ändere ich die Uhrzeit im erforderlichen Format in MySQL?
Wie kann ich eine XML-Datei öffnen?
Antworten: MySQL bietet die Funktion DATE_FORMAT (), um datetime in die erforderliche formatierte Zeichenfolge für die Anzeige in Abfrageergebnissen zu konvertieren.
>> Siehe Hier für eine vollständige Liste der Formatspezifizierer.
Beispiel: Zum Konvertieren von Datum und Uhrzeit in Format - TT: MM: JJJJ können Sie die folgende Abfrage verwenden:
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d:%m:%Y');
F # 3) Wie ist das Datumsformat in MySQL?
Antworten: Das Standard-Datumsformat in MySQL lautet „TT-MM-JJJJ HH: MM: SS. { Bruchteil }}
Beispiel für einen in MySQL gespeicherten Datum / Uhrzeit-Wert - „2020-03-15 07: 10: 56.123“
F # 4) So erstellen Sie eine Tabelle mit dem Datentyp DATE in MySQL.
Antworten: MySQL bietet je nach Bedarf verschiedene Datentypen zum Speichern von Datums- und Zeitwerten. Nur zum Speichern von Datumsangaben kann der Datentyp DATE verwendet werden. Es speichert Daten im Format JJJJ-MM-TT.
Sehen wir uns ein Beispiel für die Angabe einer Spalte als DATE-Typ an:
CREATE TABLE date_illustration(date_col DATE);
Fazit
In diesem Tutorial haben wir uns mit den verschiedenen Datentypen vertraut gemacht, die MySQL zum Speichern von Datums- und Zeitwerten bereitstellt, und darüber, wie verschiedene benutzerfreundliche Funktionen von MySQL zur Berechnung von Datums- und Uhrzeitwerten verwendet werden können.
Wir haben auch verschiedene Funktionen kennengelernt, z. B. das Extrahieren bestimmter Teile des angegebenen DateTime-Werts, das Konvertieren eines bestimmten Datums in eine andere Form, das Hinzufügen von Datums- / Zeitwerten zu vorhandenen Werten usw.
DateTime ist einer der wichtigsten Datentypen in MySQL und hat eine große Bedeutung für das Abrufen von Details, wenn ein Ereignis aufgetreten ist.
Diese Werte werden sehr häufig von Datenanalysten / maschinellen Lern- / Preismodellen usw. verwendet, bei denen viele Daten geschnitten und in Würfel geschnitten werden, um maschinelle Lernmodelle vorzubereiten und wichtige Geschäftsentscheidungen zu treffen.
Literatur-Empfehlungen
- C # DateTime Tutorial: Arbeiten mit Datum und Uhrzeit in C # mit Beispiel
- PL SQL Datetime Format: Datums- und Zeitfunktionen in PL / SQL
- Python DateTime Tutorial mit Beispielen
- Datums- und Uhrzeitfunktionen in C ++ mit Beispielen
- MySQL Create View Tutorial mit Codebeispielen
- MySQL Insert Into Table - Syntax und Beispiele für Insert-Anweisungen
- MySQL Tutorial zum Erstellen von Tabellen mit Beispielen
- MySQL Delete-Anweisung - Befehlssyntax und Beispiele löschen