MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie TIMESTAMP() in MariaDB funktioniert

In MariaDB, TIMESTAMP() ist eine eingebaute Datums- und Uhrzeitfunktion, die basierend auf ihrem/n Argument/en einen Datum/Uhrzeit-Wert zurückgibt.

Es kann wie folgt mit einem oder zwei Argumenten verwendet werden:

  • Wenn es mit einem Argument verwendet wird, gibt es diesen Datums- oder Datumszeit-Ausdruck als Datumszeit-Wert zurück.
  • Wenn es mit zwei Argumenten verwendet wird, fügt es das zweite (time) Argument zum ersten (date oder datetime) Ausdruck hinzu und gibt dann den resultierenden datetime Wert zurück.

Syntax

Es kann auf zwei Arten verwendet werden:

TIMESTAMP(expr)
TIMESTAMP(expr1,expr2) 

Wobei expr1 ein Datums- oder Datumszeitausdruck ist und expr2 ist ein Zeitausdruck, der zu expr1 hinzugefügt werden soll .

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

SELECT TIMESTAMP('2030-02-01'); 

Ergebnis:

+-------------------------+| ZEITSTEMPEL('2030-02-01') |+--------------------+| 2030-02-01 00:00:00 |+--------------------+

Datum/Uhrzeit-Werte

Hier ist ein Beispiel für die Übergabe eines datetime-Werts:

SELECT TIMESTAMP('2030-02-01 10:30:45'); 

Ergebnis:

+----------------------------------------------+| ZEITSTEMPEL('2030-02-01 10:30:45') |+--------------------------------------------- -+| 2030-02-01 10:30:45 |+----------------------------------------------+

Zweites Argument

Hier ist ein Beispiel, das das zweite Argument zum ersten hinzufügt:

SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15'); 

Ergebnis:

+---------------------------------------------- +| ZEITSTEMPEL('2030-02-01 10:30:45', '02:15:15') |+-------------------- ---------------------+| 01.02.2030 12:46:00 |+------------------------------------ --------+

Mikrosekunden

Hier ist ein Beispiel, das Mikrosekunden hinzufügt:

SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456'); 

Ergebnis:

+---------------------------------------------- -------+| ZEITSTEMPEL('2030-02-01 10:30:45', '00:00:00.123456') |+-------------------- ----------------------------+| 2030-02-01 10:30:45.123456 |+-------------------------------------- ---------------+

Negative Zeiten

Negative Zeiten sind gültig:

Beispiel:

SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00'); 

Ergebnis:

+---------------------------------------------- -+| ZEITSTEMPEL('2030-02-01 10:30:45', '-09:20:00') |+------------------------ -----------------------+| 01.02.2030 01:10:45 |+-------------------------------------------------- ---------+

Aktuelles Datum

Wir können NOW() übergeben als datetime-Argument, um das aktuelle Datum und die aktuelle Uhrzeit zu verwenden:

SELECT 
    NOW(),
    TIMESTAMP(NOW(), '10:30:45'); 

Ergebnis:

+---------------------+-------------------------------- ------+| JETZT() | ZEITSTEMPEL(JETZT(), '10:30:45') |+---------------------+------------ ------------------+| 2021-05-28 09:25:09 | 2021-05-28 19:55:54 |+---------------------+---------------- --------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, TIMESTAMP() gibt null zurück mit einer Warnung:

SELECT TIMESTAMP('Ten Thirty AM'); 

Ergebnis:

+-----------------------------------+| TIMESTAMP('Zehn Uhr dreißig') |+------------------------------------+| NULL |+------------------------------------+1 Zeile im Satz, 1 Warnung (0,004 Sek.)

Überprüfen Sie die Warnung:

SHOW WARNINGS; 

Ergebnis:

+---------+------+------------------------------------- ----------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ---------+| Warnung | 1292 | Falscher Zeitwert:'Ten Thirty AM' |+---------+------+--------------------- ------------------+

Fehlendes Argument

Aufruf von TIMESTAMP() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT TIMESTAMP(); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden

Und noch ein Beispiel:

SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45'); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von ' '06:30:45')' in Zeile 1