In MariaDB, TIMESTAMP()
is een ingebouwde datum- en tijdfunctie die een datetime-waarde retourneert, gebaseerd op zijn argument(en).
Het kan als volgt met één argument of met twee worden gebruikt:
- Wanneer gebruikt met één argument, retourneert het die datum of datetime-expressie als een datetime-waarde.
- Indien gebruikt met twee argumenten, voegt het het tweede (time) argument toe aan de eerste (date of datetime) expressie en retourneert het vervolgens de resulterende datetime-waarde.
Syntaxis
Het kan op de volgende twee manieren worden gebruikt:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Waar expr1
is een datum- of datetime-expressie, en expr2
is een tijduitdrukking om toe te voegen aan expr1
.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT TIMESTAMP('2030-02-01');
Resultaat:
+-------------------------+ | TIMESTAMP('2030-02-01') | +-------------------------+ | 2030-02-01 00:00:00 | +-------------------------+
Datum/tijd-waarden
Hier is een voorbeeld van het doorgeven van een datetime-waarde:
SELECT TIMESTAMP('2030-02-01 10:30:45');
Resultaat:
+----------------------------------+ | TIMESTAMP('2030-02-01 10:30:45') | +----------------------------------+ | 2030-02-01 10:30:45 | +----------------------------------+
Tweede argument
Hier is een voorbeeld dat het tweede argument aan het eerste toevoegt:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');
Resultaat:
+----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '02:15:15') | +----------------------------------------------+ | 2030-02-01 12:46:00 | +----------------------------------------------+
Microseconden
Hier is een voorbeeld dat microseconden toevoegt:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');
Resultaat:
+-----------------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') | +-----------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +-----------------------------------------------------+
Negatieve tijden
Negatieve tijden zijn geldig:
Voorbeeld:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');
Resultaat:
+-----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') | +-----------------------------------------------+ | 2030-02-01 01:10:45 | +-----------------------------------------------+
Huidige datum
We kunnen NOW()
doorgeven als het datetime-argument om de huidige datum en tijd te gebruiken:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45');
Resultaat:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, TIMESTAMP()
retourneert null
met een waarschuwing:
SELECT TIMESTAMP('Ten Thirty AM');
Resultaat:
+----------------------------+ | TIMESTAMP('Ten Thirty AM') | +----------------------------+ | NULL | +----------------------------+ 1 row in set, 1 warning (0.004 sec)
Controleer de waarschuwing:
SHOW WARNINGS;
Resultaat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Ontbrekend argument
TIMESTAMP()
. aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT TIMESTAMP();
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
En nog een voorbeeld:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45');
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1