sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer TIMESTAMPADD() i MariaDB

I MariaDB, TIMESTAMPADD() er en indbygget dato- og klokkeslætsfunktion, der tilføjer et heltalsudtryksinterval til et givet dato- eller datotidsudtryk.

Syntaks

Syntaksen ser sådan ud:

TIMESTAMPADD(unit,interval,datetime_expr)

Hvor unit er en af ​​følgende værdier:

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

Enhederne kan valgfrit have præfikset SQL_TSI_ .

Eksempel

Her er et eksempel til demonstration:

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

Resultat:

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

Dato-tidsværdier

Her er et eksempel på videregivelse af en datetime-værdi:

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                           |
+-----------------------------------------------+

Tilføjelse af en SQL_TSI_ Præfiks

Enheden kan inkludere en SQL_TSI_ præfiks om nødvendigt:

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

Resultat:

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

Mikrosekunder

Her er et eksempel, der tilføjer 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                               |
+----------------------------------------------------------+

Negative intervaller

Negative intervaller er gyldige:

Eksempel:

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

Resultat:

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

Aktuel dato

Vi kan sende NOW() som datetime-argument for at bruge den aktuelle dato og 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          |
+---------------------+------------------------------+

Manglende argument

Kalder TIMESTAMPADD() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:

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

Og endnu et eksempel:

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. Sammenligning af Cloud Database-indstillinger for PostgreSQL

  2. Sådan får du et OBJECT_NAME() fra en anden database i SQL Server

  3. ORA-01017 Ugyldigt brugernavn/adgangskode ved tilslutning til 11g database fra 9i klient

  4. Hvordan kan jeg se, om mit Oracle-system er indstillet til at understøtte Unicode eller multibyte-tegn?