В MariaDB, TIMESTAMP() е вградена функция за дата и час, която връща стойност за дата и час въз основа на нейния аргумент/и.
Може да се използва с един или два аргумента, както следва:
- Когато се използва с един аргумент, той връща тази дата или израз за дата и час като стойност за дата и час.
- Когато се използва с два аргумента, той добавя втория аргумент (време) към първия израз (дата или дата и час), след което връща получената стойност за дата и час.
Синтаксис
Може да се използва по следните два начина:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Където expr1 е израз за дата или време и expr2 е израз за време за добавяне към expr1 .
Пример
Ето пример за демонстрация:
SELECT TIMESTAMP('2030-02-01'); Резултат:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Стойности за дата и час
Ето пример за предаване на стойност за дата и час:
SELECT TIMESTAMP('2030-02-01 10:30:45'); Резултат:
+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45 |
+----------------------------------+ Втори аргумент
Ето пример, който добавя втория аргумент към първия:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15'); Резултат:
+----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
+----------------------------------------------+
| 2030-02-01 12:46:00 |
+----------------------------------------------+ Микросекунди
Ето пример, който добавя микросекунди:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456'); Резултат:
+-----------------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
+-----------------------------------------------------+
| 2030-02-01 10:30:45.123456 |
+-----------------------------------------------------+ Отрицателни времена
Отрицателните времена са валидни:
Пример:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00'); Резултат:
+-----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
+-----------------------------------------------+
| 2030-02-01 01:10:45 |
+-----------------------------------------------+ Текуща дата
Можем да предадем NOW() като аргумент datetime, за да използвате текущата дата и час:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45'); Резултат:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Невалидни аргументи
Когато се подаде невалиден аргумент, TIMESTAMP() връща null с предупреждение:
SELECT TIMESTAMP('Ten Thirty AM'); Резултат:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Проверете предупреждението:
SHOW WARNINGS; Резултат:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Липсващ аргумент
Извикване на TIMESTAMP() с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT TIMESTAMP(); Резултат:
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
И още един пример:
SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45'); Резултат:
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