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

Jak działa YEAR() w MariaDB

W MariaDB, YEAR() to wbudowana funkcja daty i czasu, która zwraca rok z podanego wyrażenia daty.

Przyjmuje jeden argument, czyli datę, z której chcesz wyodrębnić rok.

Zwraca rok jako liczbę z zakresu 1000 do 9999 . Dla dat zerowych (np. 0000-00-00 ), wynikiem jest 0 .

Składnia

Składnia wygląda tak:

YEAR(date)

Gdzie date jest wyrażeniem daty, z którego pochodzi rok.

Przykład

Oto przykład:

SELECT YEAR('2030-08-01');

Wynik:

+--------------------+
| YEAR('2030-08-01') |
+--------------------+
|               2030 |
+--------------------+

Wartości daty i godziny

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

SELECT YEAR('2030-08-01 10:30:45');

Wynik:

+-----------------------------+
| YEAR('2030-08-01 10:30:45') |
+-----------------------------+
|                        2030 |
+-----------------------------+

Zero dat

Zero dat daje w wyniku 0 .

Przykład:

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

Wynik:

+--------------------+
| YEAR('0000-00-00') |
+--------------------+
|                  0 |
+--------------------+

Daty numeryczne

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

Przykład

SELECT YEAR(20301125);

Wynik:

+----------------+
| YEAR(20301125) |
+----------------+
|           2030 |
+----------------+

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

SELECT YEAR(301125);

Wynik:

+--------------+
| YEAR(301125) |
+--------------+
|         2030 |
+--------------+

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

SELECT YEAR(20301135);

Wynik:

+----------------+
| YEAR(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 
    YEAR('2030/06/25'),
    YEAR('2030,06,25'),
    YEAR('2030:06:25'),
    YEAR('2030;06!25');

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

YEAR('2030/06/25'): 2030
YEAR('2030,06,25'): 2030
YEAR('2030:06:25'): 2030
YEAR('2030;06!25'): 2030

Aktualna data

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

SELECT 
    NOW(),
    YEAR(NOW());

Wynik:

+---------------------+-------------+
| NOW()               | YEAR(NOW()) |
+---------------------+-------------+
| 2021-05-18 08:55:02 |        2021 |
+---------------------+-------------+

Nieprawidłowe argumenty

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

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

Wynik:

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

Sprawdź ostrzeżenie:

SHOW WARNINGS;

Wynik:

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

Brakujący argument

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

SELECT YEAR();

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 YEAR('2030-12-10', '2031-12-10');

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 ' '2031-12-10')' 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. Wprowadzenie do administracji MaxScale Korzystanie z maxctrl dla klastra MariaDB

  2. 6 sposobów na sprawdzenie wersji MariaDB

  3. MariaDB FIELD() vs FIND_IN_SET():jaka jest różnica?

  4. Jak zidentyfikować problemy z wydajnością MySQL za pomocą powolnych zapytań

  5. Niestandardowe wykresy do monitorowania systemów MySQL, MariaDB, MongoDB i PostgreSQL — porady i wskazówki dotyczące ClusterControl