Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sformatować datę i godzinę w MySQL?

W MySQL funkcja DATE_FORMAT() funkcja umożliwia formatowanie daty i czasu.

Oto przykład:

SELECT DATE_FORMAT('2018-12-01', '%W, %d %M %Y');

Wynik:

Saturday, 01 December 2018

W tym przykładzie %W dotyczy nazwy dnia tygodnia, %d dotyczy dnia miesiąca, %M dotyczy miesiąca, a %Y jest na rok. Dostępnych jest wiele innych specyfikatorów formatu, które umożliwiają określenie dokładnego formatu dat, a także składnika czasu.

Formatowanie składnika czasu

Oto przykład formatowania składnika czasu:

SELECT DATE_FORMAT('2018-12-01 11:03:15', '%H:%i:%s %p');

Wynik:

11:03:15 AM

W tym przykładzie %p służy do wyświetlania AM lub PM, w zależności od przypadku.

Oczywiście możesz je połączyć, aby sformatować zarówno datę, jak i godzinę za jednym razem:

SELECT DATE_FORMAT('2018-12-01 11:03:15', '%H:%i:%s %p, %W, %d %M %Y');

Wynik:

11:03:15 AM, Saturday, 01 December 2018

Formatowanie za pomocą funkcji daty/godziny

Często będziesz chciał użyć DATE_FORMAT() wraz z inną funkcją daty/czasu. Na przykład możesz go użyć razem z CURDATE() aby zwrócić aktualną datę, ładnie sformatowaną:

SELECT 
 CURDATE() AS Unformatted, 
 DATE_FORMAT(CURDATE(), '%W, %M %d, %Y') AS Formatted;

Wynik:

+-------------+----------------------+
| Unformatted | Formatted            |
+-------------+----------------------+
| 2018-05-04  | Friday, May 04, 2018 |
+-------------+----------------------+

Możesz to również zrobić za pomocą NOW() funkcja, jeśli potrzebujesz czasu:

SELECT
 NOW() AS Unformatted,
 DATE_FORMAT(NOW(), '%r') AS Formatted;

Wyniki:

+---------------------+-------------+
| Unformatted         | Formatted   |
+---------------------+-------------+
| 2018-05-04 14:33:52 | 02:33:52 PM |
+---------------------+-------------+

Funkcja TIME_FORMAT()

MySQL ma również TIME_FORMAT() funkcja, której można użyć do formatowania czasu. Ta funkcja działa podobnie do DATE_FORMAT() z wyjątkiem tego, że TIME_FORMAT() akceptuje tylko specyfikatory formatu tylko dla godzin, minut, sekund i mikrosekund.

Przykład:

SET @time = '07:35:10';
 SELECT
 TIME_FORMAT(@time, '%H') AS Hour,
 TIME_FORMAT(@time, '%i') AS Minute,
 TIME_FORMAT(@time, '%s') As Seconds,
 TIME_FORMAT(@time, '%p') AS 'AM or PM';

Wyniki:

+------+--------+---------+----------+
| Hour | Minute | Seconds | AM or PM |
+------+--------+---------+----------+
| 07   | 35     | 10      | AM       |
+------+--------+---------+----------+

Funkcja STR_TO_DATE()

STR_TO_DATE() funkcja jest odwrotnością DATE_FORMAT() funkcjonować. Umożliwia podanie ciągu, który ma być sformatowany jako data. Przyjmuje dwa parametry; ciąg i format.

Oto przykład:

SELECT STR_TO_DATE('Saturday, 6 December 2018', '%W, %d %M %Y') AS Date;

Wynik:

+------------+
| Date       |
+------------+
| 2018-12-06 |
+------------+

Jak znaleźć właściwy format daty

MySQL ma przydatną małą funkcję o nazwie GET_FORMAT() . Ta funkcja pomaga znaleźć właściwy format do użycia podczas korzystania z DATE_FORMAT() funkcja i/lub STR_TO_DATE() funkcja .

Oto jak to działa:

SELECT GET_FORMAT(DATE, 'USA');

Skutkuje to następującym:

%m.%d.%Y

Co mówi nam, jaki ciąg formatujący musielibyśmy użyć podczas formatowania daty za pomocą DATE_FORMAT() funkcjonować. Na przykład możemy wziąć wyniki z tego przykładu i zastosować je do DATE_FORMAT() funkcja:

SELECT DATE_FORMAT(NOW(), '%m.%d.%Y');

I skończyliśmy z pożądanym wynikiem:

05.04.2018

Możesz także przekazać GET_FORMAT() bezpośrednio do DATE_FORMAT() jeśli wolisz.

SELECT DATE_FORMAT(NOW(), GET_FORMAT(DATE, 'USA'));

Wynik:

05.04.2018

W każdym razie poniżej znajdują się przykłady z różnymi opcjami.

Data

SELECT 
    GET_FORMAT(DATE, 'USA') AS USA,
    GET_FORMAT(DATE, 'JIS') AS JIS,
    GET_FORMAT(DATE, 'ISO') AS ISO,
    GET_FORMAT(DATE, 'EUR') AS EUR,
    GET_FORMAT(DATE, 'INTERNAL') AS INTERNAL;

Wynik:

+----------+----------+----------+----------+----------+
| USA      | JIS      | ISO      | EUR      | INTERNAL |
+----------+----------+----------+----------+----------+
| %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d   |
+----------+----------+----------+----------+----------+

Data i godzina

SELECT 
    GET_FORMAT(DATETIME, 'USA') AS USA,
    GET_FORMAT(DATETIME, 'JIS') AS JIS,
    GET_FORMAT(DATETIME, 'ISO') AS ISO,
    GET_FORMAT(DATETIME, 'EUR') AS EUR,
    GET_FORMAT(DATETIME, 'INTERNAL') AS INTERNAL;

Wynik:

+-------------------+-------------------+-------------------+-------------------+--------------+
| USA               | JIS               | ISO               | EUR               | INTERNAL     |
+-------------------+-------------------+-------------------+-------------------+--------------+
| %Y-%m-%d %H.%i.%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H.%i.%s | %Y%m%d%H%i%s |
+-------------------+-------------------+-------------------+-------------------+--------------+

Czas

SELECT 
    GET_FORMAT(TIME, 'USA') AS USA,
    GET_FORMAT(TIME, 'JIS') AS JIS,
    GET_FORMAT(TIME, 'ISO') AS ISO,
    GET_FORMAT(TIME, 'EUR') AS EUR,
    GET_FORMAT(TIME, 'INTERNAL') AS INTERNAL; 

Wynik:

+-------------+----------+----------+----------+----------+
| USA         | JIS      | ISO      | EUR      | INTERNAL |
+-------------+----------+----------+----------+----------+
| %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s   |
+-------------+----------+----------+----------+----------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zresetować hasło roota MySQL lub MariaDB w systemie Linux?

  2. JSON_ARRAY_APPEND() – Dołącz wartości do tablicy JSON w MySQL

  3. Błąd podczas ładowania modułu MySQLdb „Czy zainstalowałeś mysqlclient lub MySQL-python?”

  4. MySQL Dodaj unikalne ograniczenie

  5. Moje oświadczenie PDO nie działa