W MariaDB, TIMESTAMP() jest wbudowaną funkcją daty i czasu, która zwraca wartość daty i czasu na podstawie jej argumentów.
Może być używany z jednym lub dwoma argumentami, w następujący sposób:
- Kiedy jest używany z jednym argumentem, zwraca to wyrażenie daty lub daty i godziny jako wartość daty i godziny.
- Kiedy jest używany z dwoma argumentami, dodaje drugi argument (czas) do pierwszego wyrażenia (data lub data/godzina), a następnie zwraca wynikową wartość daty i godziny.
Składnia
Można go używać na dwa sposoby:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Gdzie expr1 jest wyrażeniem daty lub daty i godziny, a expr2 jest wyrażeniem czasowym do dodania do expr1 .
Przykład
Oto przykład do zademonstrowania:
SELECT TIMESTAMP('2030-02-01'); Wynik:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Wartości daty i godziny
Oto przykład przekazywania wartości daty i godziny:
SELECT TIMESTAMP('2030-02-01 10:30:45'); Wynik:
+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45 |
+----------------------------------+ Drugi argument
Oto przykład, który dodaje drugi argument do pierwszego:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15'); Wynik:
+----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
+----------------------------------------------+
| 2030-02-01 12:46:00 |
+----------------------------------------------+ Mikrosekundy
Oto przykład, który dodaje mikrosekundy:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456'); Wynik:
+-----------------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
+-----------------------------------------------------+
| 2030-02-01 10:30:45.123456 |
+-----------------------------------------------------+ Czasy negatywne
Czasy ujemne są ważne:
Przykład:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00'); Wynik:
+-----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
+-----------------------------------------------+
| 2030-02-01 01:10:45 |
+-----------------------------------------------+ Aktualna data
Możemy przekazać NOW() jako argument datetime, aby użyć bieżącej daty i czasu:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45'); Wynik:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu TIMESTAMP() zwraca null z ostrzeżeniem:
SELECT TIMESTAMP('Ten Thirty AM'); Wynik:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Sprawdź ostrzeżenie:
SHOW WARNINGS; Wynik:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Brakujący argument
Wywołanie TIMESTAMP() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT TIMESTAMP(); Wynik:
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
I kolejny przykład:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45'); Wynik:
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