Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите времето от низ в MySQL

Проблем:

Искате да извлечете времето от стойност на низ в MySQL.

Пример:

Имате стойност на низ, която изглежда така:

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

Искате да извлечете само частта от времето, „12:30:20“.

Решение:

Ето заявката:

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

Дискусия:

За да илюстрираме процеса по-ясно, ще обясним това в две части.

Първо, трябва да преобразуваме низа в стойност за дата. За да направим това, използваме STR_TO_DATE функция. Заявката трябва да изглежда така:

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

Целта на STR_TO_DATE функцията е да преобразува текстов низ във формат за дата и час. Синтаксисът на тази функция е както следва:

STR_TO_DATE(string, format);

Първият аргумент на тази функция е низът, който искаме да преобразуваме. Вторият аргумент определя формата на низа. В нашия случай използваме следните параметри:

  • %W:Име на делничния ден от неделя до събота.
  • %d:Ден от месеца като числова стойност от 01 до 31.
  • %m:Месец като числова стойност от 01 до 12.
  • %Y:Година като 4-цифрена числова стойност (гггг).
  • %T:Време в 24-часов формат (hh:mm:ss).

Можете да намерите повече параметри в официалната документация за MySQL.

Резултатът от тази заявка трябва да изглежда така:

2021-02-10 12:30:20

Сега имаме стойността в типа данни DATETIME. За да извлечем само времето, трябва да добавим DATE_FORMAT функция към заявката по-горе.

Общият синтаксис на DATE_FORMAT функцията е:

DATE_FORMAT(date, format)

Тогава нашата заявка трябва да изглежда така:

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

В нашия пример, първият аргумент на DATE_FORMAT функцията е датата, получена от STR_TO_DATE функция. Вторият аргумент е форматът, който работи по същия начин, както в STR_TO_DATE функция. Тъй като тук се нуждаем само от времето, ние задаваме „%T " като втори аргумент.

Знакът % е задължителен преди знаците на спецификатора на формата. Трябва да посочим формата в абсолютно същия ред, включително всички препинателни знаци.

Резултатът от заявката, който виждаме по-долу, е очакваният резултат.

12:30:20

Като използвате комбинация от тези две функции, можете да извлечете всяка възможна комбинация от дата и час от текстов низ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ADDDATE() срещу DATE_ADD() в MySQL:Каква е разликата?

  2. Моят MySQL тригер не работи, прост синтаксис, не е сложен

  3. Свързване с MySQL от Android с JDBC

  4. SELECT COUNT() срещу mysql_num_rows();

  5. Как да деактивирате проверката на чужд ключ в MySQL