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

Jak uzyskać czas z ciągu znaków w MySQL?

Problem:

Chcesz wyodrębnić czas z wartości ciągu w MySQL.

Przykład:

Masz ciąg znaków, który wygląda tak:

‘Wednesday, 10 February 2021, 12:30:20’

Chcesz wyodrębnić tylko część czasu, „12:30:20”.

Rozwiązanie:

Oto zapytanie:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

Dyskusja:

Aby dokładniej zilustrować ten proces, wyjaśnimy to w dwóch częściach.

Najpierw musimy przekonwertować ciąg na wartość daty. Aby to zrobić, używamy STR_TO_DATE funkcjonować. Zapytanie powinno wyglądać tak:

SELECT STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”);

Cel STR_TO_DATE Funkcja polega na konwersji ciągu tekstowego na format daty i godziny. Składnia tej funkcji jest następująca:

STR_TO_DATE(string, format);

Pierwszym argumentem tej funkcji jest ciąg, który chcemy przekonwertować. Drugi argument określa format ciągu. W naszym przypadku używamy następujących parametrów:

  • %W:Nazwa dnia tygodnia od niedzieli do soboty.
  • %d:dzień miesiąca jako wartość liczbowa od 01 do 31.
  • %m:Miesiąc jako wartość liczbowa od 01 do 12.
  • %Y:Rok jako 4-cyfrowa wartość liczbowa (rrrr).
  • %T:Czas w formacie 24-godzinnym (gg:mm:ss).

Więcej parametrów znajdziesz w oficjalnej dokumentacji MySQL.

Wynik tego zapytania powinien wyglądać tak:

2021-02-10 12:30:20

Teraz mamy wartość w typie danych DATETIME. Aby wyodrębnić tylko czas, musimy dodać DATE_FORMAT funkcji do powyższego zapytania.

Ogólna składnia DATE_FORMAT funkcja to:

DATE_FORMAT(date, format)

Wtedy nasze zapytanie powinno wyglądać tak:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

W naszym przykładzie pierwszy argument DATE_FORMAT funkcją jest data wynikająca z STR_TO_DATE funkcjonować. Drugim argumentem jest format, który działa w taki sam sposób, jak w STR_TO_DATE funkcjonować. Ponieważ potrzebujemy tutaj tylko czasu, określamy „%T " jako drugi argument.

Znak % jest obowiązkowy przed znakami specyfikatora formatu. Musimy określić format w dokładnie tej samej kolejności, łącznie ze wszystkimi znakami interpunkcyjnymi.

Wynik zapytania, który widzimy poniżej, jest oczekiwanym wynikiem.

12:30:20

Używając kombinacji tych dwóch funkcji, możesz wyodrębnić każdą możliwą kombinację daty i czasu z ciągu tekstowego.


  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 obliczyć depozyt zabezpieczający w MySQL

  2. Łatwa konfiguracja serwera internetowego za pomocą XAMPP

  3. Zoptymalizuj wydajność MySQL/MariaDB za pomocą narzędzia MySQLTunner

  4. Importuj plik SQL do mysql

  5. Rozszerzenie mysql jest przestarzałe i zostanie usunięte w przyszłości:zamiast tego użyj mysqli lub PDO