如何从2列生成DATE以用作MySQL中的选择器

时间:2019-02-02 12:09:20

标签: mysql date multiple-columns

我在名为my的表中分别有月份和年份列。

现在我想选择记录,例如在2016-082018-10之间(日期并不重要,这就是我拥有月份和年份列的原因)

因此,我正在寻找如下所示的命令,但没有成功,是否有任何MySQL函数可以实现此目的?

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

2 个答案:

答案 0 :(得分:1)

好的,我自己找到了解决方案。

我可以使用以下方法从两列中提取日期部分:

DATE(TIMESTAMP(CONCAT(`m`,'-',`y`,'-01')))

答案 1 :(得分:0)

你可以

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

即使用CONCAT创建日期的字符串表示形式YYYY-MM-DD,然后使用CAST将字符串转换为日期。 LPAD是用来垫个位数个月,前导0。