У меня есть этот столбец с именем PODate с датой форматирования.
Я хочу получить специальный день, месяц или даже год от даты в столбце. Но я не знаю, какую функцию использовать для запроса.
Я хочу сделать запрос, который получают из выбранного месяца. или от недели в зависимости от того, какой день выбрать.
Вывод будет таким, как если бы я выбрал 9-й месяц, тогда он вернет дату только 9-го месяца, то есть.
благодарю вас
Вы можете попробовать это.
SELECT * FROM yourtable
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, date))) = '2018-09-15'
Пожалуйста, проверьте это обсуждение
Вы можете использовать регулярные выражения в MySQL. Смотрите документацию здесь.
SELECT * FROM MyTable WHERE date REGEXP '^.{5}09.*'
Это вернет все записи из вашей таблицы, где шестой и седьмой символы специально обозначены как "09", т.е. в вашем случае он вернет все записи из вашей таблицы, где ваша дата где-то в сентябре.
Разбивая его, ^
отмечает, что мы хотим начать смотреть в начале строки. .
обозначает произвольный символ, а {5}
означает, что все, что произошло до того, как его нужно повторить пять раз, т .{5}
е .{5}
обозначает пять произвольных символов. .*
Обозначает произвольное число (возможно, ноль) произвольных символов, чтобы следовать.
Подобные выражения могут быть созданы для других сценариев.
Вы можете использовать функцию Extract
..
Определить:
Функция EXTRACT() извлекает деталь из указанной даты
Пример:
За Month
SELECT EXTRACT(MONTH FROM "2018-09-15");
На Week
SELECT EXTRACT(WEEK FROM "2018-09-16");
Может извлекать:
Вы можете прочитать здесь больше для документации Функция Extract()
РЕДАКТИРОВАТЬ:
Вы можете использовать эту Extract Function
where
условие для вашего случая:
Пример:
select
your_date
from
your_table
where
extract(MONTH FROM your_date) = '9'