I MariaDB, TIMESTAMP() är en inbyggd datum- och tidsfunktion som returnerar ett datetime-värde baserat på dess argument/er.
Den kan användas med antingen ett argument eller två, enligt följande:
- När det används med ett argument returnerar det datumet eller datetime-uttrycket som ett datetime-värde.
- När den används med två argument lägger den till det andra (tids)-argumentet till det första (datum eller datetime) uttrycket och returnerar sedan det resulterande datetime-värdet.
Syntax
Den kan användas på följande två sätt:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Där expr1 är ett datum- eller datetime-uttryck och expr2 är ett tidsuttryck att lägga till i expr1 .
Exempel
Här är ett exempel att visa:
SELECT TIMESTAMP('2030-02-01'); Resultat:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Datetime-värden
Här är ett exempel på hur du skickar ett datetime-värde:
SELECT TIMESTAMP('2030-02-01 10:30:45'); Resultat:
+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45 |
+----------------------------------+ Andra argumentet
Här är ett exempel som lägger till det andra argumentet till det första:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15'); Resultat:
+----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
+----------------------------------------------+
| 2030-02-01 12:46:00 |
+----------------------------------------------+ Mikrosekunder
Här är ett exempel som lägger till mikrosekunder:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456'); Resultat:
+-----------------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
+-----------------------------------------------------+
| 2030-02-01 10:30:45.123456 |
+-----------------------------------------------------+ Negativa tider
Negativa tider är giltiga:
Exempel:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00'); Resultat:
+-----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
+-----------------------------------------------+
| 2030-02-01 01:10:45 |
+-----------------------------------------------+ Aktuellt datum
Vi kan skicka NOW() som datetime-argument för att använda aktuellt datum och tid:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45'); Resultat:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Ogiltiga argument
När ett ogiltigt argument skickades, TIMESTAMP() returnerar null med en varning:
SELECT TIMESTAMP('Ten Thirty AM'); Resultat:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Kontrollera varningen:
SHOW WARNINGS; Resultat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argument saknas
Anropar TIMESTAMP() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT TIMESTAMP(); Resultat:
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
Och ett annat exempel:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45'); Resultat:
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