我在名为m
和y
的表中分别有月份和年份列。
现在我想选择记录,例如在2016-08
和2018-10
之间(日期并不重要,这就是我拥有月份和年份列的原因)
因此,我正在寻找如下所示的命令,但没有成功,是否有任何MySQL函数可以实现此目的?
SELECT * FROM mytable WHERE DATE(`y`,`m`) BETWEEN '2016-08-01' AND '2018-10-01'
答案 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。