как получить конкретный день месяц или год от даты столбца - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть этот столбец с именем PODate с датой форматирования.

  1. "2018-09-15"
  2. "2018-09-16"
  3. "2018-09-17"
  4. "2018-10-19"
  5. "2018-10-20"

Я хочу получить специальный день, месяц или даже год от даты в столбце. Но я не знаю, какую функцию использовать для запроса.

Я хочу сделать запрос, полученный из выбранного месяца. или из недели в зависимости от того, какой день выбрать.

Вывод будет таким, как если бы я выбрал 9-й месяц, тогда он вернет дату, на которой только 9-й месяц, то есть.

  1. "2018-09-15"
  2. "2018-09-16"
  3. "2018-09-17"

1029 * большое спасибо *

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Вы можете использовать регулярные выражения в MySQL. Смотри документацию здесь .

SELECT * FROM MyTable WHERE date REGEXP '^.{5}09.*'

Это вернет все записи из вашей таблицы, где шестой и седьмой символы, в частности, '09', т. Е. В вашем случае он вернет все записи из вашей таблицы, где ваша дата где-то в сентябре.

Разбивая его, ^ отмечает, что мы хотим начать смотреть в начале строки. . обозначает произвольный символ, а {5} означает, что все, что произошло до того, как его необходимо повторить пять раз, то есть .{5} обозначает пять произвольных символов. .* обозначает произвольное число (, возможно, ноль ) произвольных символов для последующего.

Подобные выражения могут быть созданы для других сценариев.

0 голосов
/ 01 ноября 2018

Вы можете использовать Extract функцию ..

Определить:

Функция EXTRACT () извлекает деталь из заданной даты

Пример:

Для Month

SELECT EXTRACT(MONTH FROM "2018-09-15");

Для Week

SELECT EXTRACT(WEEK FROM "2018-09-16");

Может извлекать:

  1. МИНУТЫ
  2. ЧАС
  3. ДЕНЬ
  4. Неделя
  5. МЕСЯЦ
  6. КВАРТАЛ
  7. год
  8. SECOND_MICROSECOND
  9. MINUTE_MICROSECOND
  10. MINUTE_SECOND
  11. HOUR_MICROSECOND
  12. HOUR_SECOND
  13. HOUR_MINUTE
  14. DAY_MICROSECOND
  15. DAY_SECOND * * тысяча пятьдесят-одна
  16. DAY_MINUTE
  17. DAY_HOUR
  18. YEAR_MONTH

Вы можете прочитать здесь больше для документации Функция Extract ()

РЕДАКТИРОВАТЬ :

Вы можете использовать это Extract Function в where состоянии для вашего случая:

Пример:

select
    your_date
from
    your_table
where
    extract(MONTH FROM your_date) = '9'
0 голосов
/ 01 ноября 2018

Вы можете попробовать это.

SELECT * FROM yourtable
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, date))) = '2018-09-15'

Пожалуйста, проверьте это обсуждение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...