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

Jak dodać AM/PM do wartości czasu lub daty i godziny w MariaDB?

MariaDB zawiera wiele funkcji, które umożliwiają zwracanie wartości czasu i daty i godziny w różnych formatach.

Dwie funkcje pozwalają sformatować część czasu przy użyciu zegara 12-godzinnego, przy czym oznaczenie AM/PM to DATE_FORMAT() i TIME_FORMAT() .

Istnieje wiele specyfikatorów formatu, których można używać z tymi funkcjami, ale tylko kilka zwracających oznaczenie AM/PM.

%r Specyfikator formatu

%r Specyfikator formatu służy do formatowania godziny w formacie 12-godzinnym, po którym następuje oznaczenie AM/PM.

Przykład:

SELECT DATE_FORMAT('2030-03-10 18:10:37', '%r');

Wynik:

+------------------------------------------+
| DATE_FORMAT('2030-03-10 18:10:37', '%r') |
+------------------------------------------+
| 06:10:37 PM                              |
+------------------------------------------+

Wynikowy czas jest wyświetlany tak, jakby został sformatowany przy użyciu następującego ciągu formatującego:'%I:%i:%S %p' .

Oczywiście, czy zwraca AM lub PM zależy od faktycznego czasu. Czasy przed 12:00:00 zwróć AM i czasy po tym zwracają PM .

Oto, co się stanie, jeśli zmienimy czas na przed 12:00:00 :

SELECT DATE_FORMAT('2030-03-10 06:10:37', '%r');

Wynik:

+------------------------------------------+
| DATE_FORMAT('2030-03-10 06:10:37', '%r') |
+------------------------------------------+
| 06:10:37 AM                              |
+------------------------------------------+

Zarówno DATE_FORMAT() i TIME_FORMAT() zaakceptuj %r specyfikator formatu, więc możemy użyć tego samego specyfikatora formatu z TIME_FORMAT() funkcja:

SELECT TIME_FORMAT('06:10:37', '%r');

Wynik:

+-------------------------------+
| TIME_FORMAT('06:10:37', '%r') |
+-------------------------------+
| 06:10:37 AM                   |
+-------------------------------+

TIME_FORMAT() akceptuje wartości czasu oraz daty i godziny, natomiast DATE_FORMAT() akceptuje tylko wartości daty i godziny. Jednak TIME_FORMAT() akceptuje tylko specyfikatory formatu dla godzin, minut i sekund. Widząc jako %r zwraca godziny, minuty i sekundy, to też jest akceptowane.

%p Specyfikator formatu

%p Specyfikator formatu to bardziej szczegółowy specyfikator formatu, który jest używany wyłącznie do reprezentowania desygnatora AM/PM. Zwykle jest używany w połączeniu z innymi specyfikatorami formatu, aby zwrócić czas w formacie niestandardowym.

Jak wspomniano, %r specyfikator formatu formatuje czas tak, jakby był sformatowany przy użyciu następującego ciągu formatującego:'%I:%i:%S %p' .

Użyjmy tego ciągu wprost:

SELECT TIME_FORMAT('18:10:37', '%I:%i:%S %p');

Wynik:

+----------------------------------------+
| TIME_FORMAT('18:10:37', '%I:%i:%S %p') |
+----------------------------------------+
| 06:10:37 PM                            |
+----------------------------------------+

Otrzymujemy więc ten sam wynik, co przy użyciu %r specyfikator formatu.

Jednak jedną z zalet korzystania z tej metody jest to, że możemy skonstruować dane wyjściowe w nasz własny, niestandardowy sposób.

Na przykład:

SELECT TIME_FORMAT('18:10:37', '%l:%i %p');

Wynik:

+-------------------------------------+
| TIME_FORMAT('18:10:37', '%l:%i %p') |
+-------------------------------------+
| 6:10 PM                             |
+-------------------------------------+

Tutaj użyliśmy %l aby zwrócić część godzinową bez wiodącego zera. Pominęliśmy również część sekundową.

Zobacz ciągi formatujące MariaDB, aby uzyskać pełną listę specyfikatorów formatu, których można używać z tymi funkcjami.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB Z WYJĄTKIEM Operatora wyjaśniono

  2. Podstawy szyfrowania bazy danych serwera MariaDB

  3. 4 sposoby na oddzielenie godzin, minut i sekund od wartości czasu w MariaDB

  4. Odejmij miesiąc od daty w MariaDB

  5. Jak odzyskać klaster Galera lub replikację MySQL z zespołu rozszczepionego mózgu?