I MariaDB, TIMESTAMP() er en indbygget dato- og klokkeslætsfunktion, der returnerer en datetime-værdi baseret på dens argument(er).
Det kan bruges med enten et argument eller to, som følger:
- Når det bruges sammen med ét argument, returnerer det dato- eller datetime-udtrykket som en datetime-værdi.
- Når det bruges med to argumenter, føjer det det andet (tids)-argument til det første (dato eller datetime) udtryk og returnerer derefter den resulterende datetime-værdi.
Syntaks
Det kan bruges på følgende to måder:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Hvor expr1 er et dato- eller datetime-udtryk og expr2 er et tidsudtryk, der skal tilføjes til expr1 .
Eksempel
Her er et eksempel til demonstration:
SELECT TIMESTAMP('2030-02-01'); Resultat:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Dato-tidsværdier
Her er et eksempel på videregivelse af en datetime-værdi:
SELECT TIMESTAMP('2030-02-01 10:30:45'); Resultat:
+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45 |
+----------------------------------+ Andet argument
Her er et eksempel, der føjer det andet argument til det første:
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
Her er et eksempel, der tilføjer 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 |
+-----------------------------------------------------+ Negative tidspunkter
Negative tider er gyldige:
Eksempel:
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 |
+-----------------------------------------------+ Aktuel dato
Vi kan sende NOW() som datetime-argument for at bruge den aktuelle dato og 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 | +---------------------+------------------------------+
Ugyldige argumenter
Når et ugyldigt argument sendes, TIMESTAMP() returnerer null med en advarsel:
SELECT TIMESTAMP('Ten Thirty AM'); Resultat:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Tjek advarslen:
SHOW WARNINGS; Resultat:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Manglende argument
Kalder TIMESTAMP() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
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
Og endnu et eksempel:
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