Как сгенерировать DATE из 2 столбцов для использования в качестве селектора в MySQL - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть столбцы месяца и года отдельно в таблице с именами m и y.

Теперь я хочу выбрать записи, например, между 2016-08 и 2018-10 (деньне важно, и именно поэтому у меня есть столбцы месяца и года)

Итак, я ищу команду, как показано ниже, но безуспешно, есть ли какая-либо функция MySQL для достижения этой цели?

SELECT * FROM mytable WHERE DATE(`y`,`m`) BETWEEN '2016-08-01' AND '2018-10-01'

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вы можете сделать

CAST(CONCAT(y, '-', LPAD(m,2,'0'), '-', '01') as DATE)

То есть создать строковое представление даты, ГГГГ-ММ-ДД, используя CONCAT, а затем использовать CAST для преобразования строки в дату.LPAD используется для заполнения однозначных месяцев начальным 0.

0 голосов
/ 02 февраля 2019

Хорошо, я сам нашел решение.

Я могу извлечь часть даты из двух столбцов, используя:

DATE(TIMESTAMP(CONCAT(`m`,'-',`y`,'-01')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...