MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak TIMESTAMPADD() działa w MariaDB

W MariaDB, TIMESTAMPADD() to wbudowana funkcja daty i czasu, która dodaje interwał wyrażenia liczby całkowitej do podanego wyrażenia daty lub czasu.

Składnia

Składnia wygląda tak:

TIMESTAMPADD(unit,interval,datetime_expr)

Gdzie unit jest jedną z następujących wartości:

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

Jednostki mogą opcjonalnie mieć przedrostek SQL_TSI_ .

Przykład

Oto przykład do zademonstrowania:

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

Wynik:

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

Wartości daty i godziny

Oto przykład przekazywania wartości daty i godziny:

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

Wynik:

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

Dodawanie SQL_TSI_ Prefiks

Jednostka może zawierać SQL_TSI_ prefiks, jeśli jest wymagany:

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

Wynik:

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

Mikrosekundy

Oto przykład, który dodaje mikrosekundy:

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

Wynik:

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

Przedziały ujemne

Ujemne przedziały są prawidłowe:

Przykład:

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

Wynik:

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

Aktualna data

Możemy przekazać NOW() jako argument datetime, aby użyć bieżącej daty i czasu:

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

Wynik:

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

Brakujący argument

Wywołanie TIMESTAMPADD() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT TIMESTAMPADD();

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

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 '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. Porównanie ręcznych wdrożeń baz danych z wdrożeniami automatycznymi

  2. Jak uzyskać skróconą nazwę miesiąca z daty w MariaDB?

  3. W bazie danych MySQL brakuje miejsca na dysku

  4. MariaDB JSON_QUOTE() Objaśnienie

  5. Uruchamianie ProxySQL jako kontenera pomocniczego na Kubernetes