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

Jak LAST_DAY() działa w MariaDB

W MariaDB, LAST_DAY() to wbudowana funkcja daty i czasu, która zwraca ostatni dzień miesiąca dla podanej daty.

Przyjmuje jeden argument, którym jest data, dla której chcesz znaleźć ostatni dzień miesiąca.

Składnia

Składnia wygląda tak:

LAST_DAY(date)

Gdzie date to wyrażenie daty, dla którego chcesz znaleźć ostatni dzień miesiąca.

Przykład

Oto przykład:

SELECT LAST_DAY('2030-02-01');

Wynik:

+------------------------+
| LAST_DAY('2030-02-01') |
+------------------------+
| 2030-02-28             |
+------------------------+

W tym przypadku używamy daty w lutym. Jak się okazuje, luty ma w tym roku 28 dni.

Oto, co się stanie, jeśli zwiększymy datę do następnego roku przestępnego:

SELECT LAST_DAY('2032-02-01');

Wynik:

+------------------------+
| LAST_DAY('2032-02-01') |
+------------------------+
| 2032-02-29             |
+------------------------+

Wartości daty i godziny

Działa również z wartościami daty i godziny:

SELECT LAST_DAY('2030-02-01 10:30:45');

Wynik:

+---------------------------------+
| LAST_DAY('2030-02-01 10:30:45') |
+---------------------------------+
| 2030-02-28                      |
+---------------------------------+

Zero dat

Zerowe daty dają w wyniku null .

Przykład:

SELECT LAST_DAY('0000-00-00');

Wynik:

+------------------------+
| LAST_DAY('0000-00-00') |
+------------------------+
| NULL                   |
+------------------------+

Daty numeryczne

Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.

Przykład

SELECT LAST_DAY(20301125);

Wynik:

+--------------------+
| LAST_DAY(20301125) |
+--------------------+
| 2030-11-30         |
+--------------------+

Lub nawet następujący (który używa dwucyfrowego roku):

SELECT LAST_DAY(301125);

Wynik:

+------------------+
| LAST_DAY(301125) |
+------------------+
| 2030-11-30       |
+------------------+

Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:

SELECT LAST_DAY(20301135);

Wynik:

+--------------------+
| LAST_DAY(20301135) |
+--------------------+
| NULL               |
+--------------------+
1 row in set, 1 warning (0.000 sec)

Możemy sprawdzić ostrzeżenie w następujący sposób:

SHOW WARNINGS;

Wynik:

+---------+------+--------------------------------------+
| Level   | Code | Message                              |
+---------+------+--------------------------------------+
| Warning | 1292 | Incorrect datetime value: '20301135' |
+---------+------+--------------------------------------+

Inne ograniczniki

Możesz użyć innych ograniczników daty. MariaDB jest dość wyrozumiała, jeśli chodzi o ograniczniki dat. Oto kilka poprawnych przykładów:

SELECT 
    LAST_DAY('2030/06/25'),
    LAST_DAY('2030,06,25'),
    LAST_DAY('2030:06:25'),
    LAST_DAY('2030;06!25');

Wynik (przy użyciu wyjścia pionowego):

LAST_DAY('2030/06/25'): 2030-06-30
LAST_DAY('2030,06,25'): 2030-06-30
LAST_DAY('2030:06:25'): 2030-06-30
LAST_DAY('2030;06!25'): 2030-06-30

Aktualna data

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

SELECT 
    NOW(),
    LAST_DAY(NOW());

Wynik:

+---------------------+-----------------+
| NOW()               | LAST_DAY(NOW()) |
+---------------------+-----------------+
| 2021-05-18 09:39:01 | 2021-05-31      |
+---------------------+-----------------+

Nieprawidłowe argumenty

Po przekazaniu nieprawidłowego argumentu LAST_DAY() zwraca null :

SELECT LAST_DAY('2030-65-78');

Wynik:

+------------------------+
| LAST_DAY('2030-65-78') |
+------------------------+
| NULL                   |
+------------------------+
1 row in set, 1 warning (0.000 sec)

Sprawdź ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2030-65-78' |
+---------+------+----------------------------------------+

Brakujący argument

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

SELECT LAST_DAY();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

I kolejny przykład:

SELECT LAST_DAY('2030-12-10', '2031-12-10');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 sposoby sprawdzenia, czy tabela istnieje w MariaDB

  2. Uaktualnianie do najnowszej wersji Jira z najnowszą wersją serwera MariaDB

  3. Monitorowanie klastra Galera dla MySQL lub MariaDB — zrozumienie metryk (zaktualizowane)

  4. Jak działa COLLATION() w MariaDB

  5. 6 typowych scenariuszy awarii dla MySQL i MariaDB oraz jak je naprawić