sql >> Databasteknik >  >> RDS >> MariaDB

Hur TIMESTAMPADD() fungerar i MariaDB

I MariaDB, TIMESTAMPADD() är en inbyggd datum- och tidsfunktion som lägger till ett heltalsuttrycksintervall till ett givet datum- eller datumtidsuttryck.

Syntax

Syntaxen ser ut så här:

TIMESTAMPADD(unit,interval,datetime_expr)

Där unit är ett av följande värden:

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

Enheterna kan valfritt ha prefixet SQL_TSI_ .

Exempel

Här är ett exempel att visa:

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

Resultat:

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

Datetime-värden

Här är ett exempel på hur du skickar ett datetime-värde:

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

Resultat:

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

Lägga till en SQL_TSI_ Prefix

Enheten kan innehålla en SQL_TSI_ prefix vid behov:

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

Resultat:

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

Mikrosekunder

Här är ett exempel som lägger till mikrosekunder:

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

Resultat:

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

Negativa intervall

Negativa intervall är giltiga:

Exempel:

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

Resultat:

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

Aktuellt datum

Vi kan skicka NOW() som datetime-argument för att använda aktuellt datum och tid:

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

Resultat:

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

Argument saknas

Anropar TIMESTAMPADD() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:

SELECT TIMESTAMPADD();

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

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

  1. hur man får rowNum-liknande kolumn i sqlite IPHONE

  2. Gå med fyra bord som involverar LEFT JOIN utan dubbletter

  3. MySQL Välj Top N Rader

  4. CASE kontra DECODE