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

Jak DATE_FORMAT() działa w MariaDB

W MariaDB, DATE_FORMAT() to wbudowana funkcja daty i czasu, która formatuje datę zgodnie z podanym ciągiem formatu.

Wymaga dwóch argumentów; data i ciąg formatu. Akceptuje również opcjonalny trzeci argument, który pozwala określić ustawienia regionalne.

Składnia

Składnia wygląda tak:

DATE_FORMAT(date, format[, locale])

Gdzie date to data, format jest ciągiem formatu (zobacz akceptowane specyfikatory formatu) i locale jest opcjonalnym ustawieniem regionalnym do użycia dla zwróconego formatu.

Przykład

Oto przykład:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y');

Wynik:

+----------------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y') |
+----------------------------------------------------+
| Friday, 25th January 2030                          |
+----------------------------------------------------+

Tutaj znowu, ale tym razem używając %r aby zwrócić czas w formacie 12-godzinnym:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r');

Wynik:

+------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%r') |
+------------------------------------------+
| 10:30:45 AM                              |
+------------------------------------------+

Możemy je łączyć, aby otrzymać godzinę i datę:

SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y');

Wynik:

+-------------------------------------------------------+
| DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y') |
+-------------------------------------------------------+
| 10:30:45 AM Friday, 25th January 2030                 |
+-------------------------------------------------------+

Język nazw miesięcy, nazw dni itp. określa lc_time_names zmienna systemowa. Wartość domyślna to zawsze en_US niezależnie od ustawień regionalnych systemu. Oto jak sprawdzić swoje bieżące ustawienie.

Argument dotyczący ustawień regionalnych

Począwszy od MariaDB 10.3.2, do określenia ustawień regionalnych można użyć opcjonalnego trzeciego argumentu. Gdy jest to określone, funkcja jest niezależna od ustawień sesji.

SELECT DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR');

Wynik:

+----------------------------------------------------+
| DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR') |
+----------------------------------------------------+
| viernes, 25th enero 2030                           |
+----------------------------------------------------+

Oto kilka innych lokalizacji:

SELECT 
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'fr_FR') AS fr_FR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'hr_HR') AS hr_HR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'ms_MY') AS fr_FR,
    DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'th_TH') AS th_TH;

Wynik:

fr_FR: vendredi, 25th janvier 2030
hr_HR: Petak, 25th Siječanj 2030
fr_FR: Jumaat, 25th Januari 2030
th_TH: ศุกร์, 25th มกราคม 2030

W tym przypadku ostatni jest tajlandzki i chociaż używa znaków tajlandzkich dla nazwy miesiąca i dnia, nie zmienia roku na kalendarz tajlandzki. Rok 2030 byłby 2573 przy użyciu tajlandzkiego kalendarza. Sądzę więc, że założenie jest takie, że jeśli chcesz używać roku tajskiego, to data, w której przechodzisz, będzie już używała roku tajskiego.

Aktualna data

Tutaj przekazujemy NOW() jako argument data w celu sformatowania bieżącej daty:

SELECT DATE_FORMAT(NOW(), '%r %W, %D %M %Y');

Wynik:

+---------------------------------------+
| DATE_FORMAT(NOW(), '%r %W, %D %M %Y') |
+---------------------------------------+
| 09:53:00 AM Tuesday, 11th May 2021    |
+---------------------------------------+

Nieprawidłowe argumenty

Po przekazaniu jakichkolwiek nieprawidłowych argumentów, DATE_FORMAT() zwraca null :

SELECT DATE_FORMAT('Homer', 'Simpson');

Wynik:

+---------------------------------+
| DATE_FORMAT('Homer', 'Simpson') |
+---------------------------------+
| NULL                            |
+---------------------------------+

Brakujący argument

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

SELECT DATE_FORMAT();

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 DATE_FORMAT('2030-05-21');

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

GET_FORMAT() Funkcja

Możesz także użyć GET_FORMAT() funkcja w drugim argumencie DATE_FORMAT() . Spowoduje to zwrócenie pełnego ciągu formatu dla danego formatu daty, co pozwala uniknąć konieczności zapamiętywania ciągu formatu, którego należy użyć.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć tylko wartości liczbowe w MariaDB

  2. Jak zainstalować i skonfigurować MaxScale dla MariaDB

  3. Uruchamianie MariaDB w konfiguracji chmury hybrydowej

  4. Jak działa CEILING() w MariaDB

  5. Przedstawiamy MariaDB Platform X5:bazę danych o dowolnym obciążeniu, teraz w dowolnej skali