MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как TIMESTAMPADD() работи в MariaDB

В MariaDB, TIMESTAMPADD() е вградена функция за дата и час, която добавя интервал на целочислен израз към даден израз за дата или час.

Синтаксис

Синтаксисът е така:

TIMESTAMPADD(unit,interval,datetime_expr)

Където unit е една от следните стойности:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

По избор единиците могат да имат префикс SQL_TSI_ .

Пример

Ето пример за демонстрация:

SELECT TIMESTAMPADD(DAY, 10, '2030-02-01');

Резултат:

+-------------------------------------+
| TIMESTAMPADD(DAY, 10, '2030-02-01') |
+-------------------------------------+
| 2030-02-11                          |
+-------------------------------------+

Стойности за дата и час

Ето пример за предаване на стойност за дата и час:

SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45');

Резултат:

+-----------------------------------------------+
| TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') |
+-----------------------------------------------+
| 2030-02-01 20:30:45                           |
+-----------------------------------------------+

Добавяне на SQL_TSI_ Префикс

Устройството може да включва SQL_TSI_ префикс, ако е необходимо:

SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01');

Резултат:

+----------------------------------------------+
| TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') |
+----------------------------------------------+
| 2040-02-01                                   |
+----------------------------------------------+

Микросекунди

Ето пример, който добавя микросекунди:

SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45');

Резултат:

+----------------------------------------------------------+
| TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') |
+----------------------------------------------------------+
| 2030-02-01 10:30:45.123456                               |
+----------------------------------------------------------+

Отрицателни интервали

Отрицателните интервали са валидни:

Пример:

SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01');

Резултат:

+---------------------------------------+
| TIMESTAMPADD(YEAR, -10, '2030-02-01') |
+---------------------------------------+
| 2020-02-01                            |
+---------------------------------------+

Текуща дата

Можем да предадем NOW() като аргумент datetime, за да използвате текущата дата и час:

SELECT 
    NOW(),
    TIMESTAMPADD(DAY, 10, NOW());

Резултат:

+---------------------+------------------------------+
| NOW()               | TIMESTAMPADD(DAY, 10, NOW()) |
+---------------------+------------------------------+
| 2021-05-28 09:58:56 | 2021-06-07 09:58:56          |
+---------------------+------------------------------+

Липсващ аргумент

Извикване на TIMESTAMPADD() с грешен брой аргументи или без подаване на аргументи, води до грешка:

SELECT TIMESTAMPADD();

Резултат:

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 TIMESTAMPADD(10, '2020-12-09');

Резултат:

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 '10, '2020-12-09')' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мониторинг на производителността на MariaDB в хибриден облак

  2. Как UUID_SHORT() работи в MariaDB

  3. Работа с големи обеми данни с MySQL и MariaDB

  4. Автоматизация на бази данни с Puppet:Разгръщане на MySQL &MariaDB Galera Cluster

  5. Как да автоматизирате отказ на база данни с ClusterControl