我刚写了一个MySQL的类似sql查询。
1、将年、月、日和小时组合成一个字符串
2、月日时如果不是两位,在前面补0
3、将字符和判断区间的字符串值进行比较
select * from 表 where CONCAT(vyear
,LPAD(vmonth
,2,0),LPAD(vday,2,0),LPAD(Hour,2,0)) >= '2017081000' and CONCAT(vyear,LPAD(vmonth,2,0),LPAD(vday,2,0),LPAD(Hour,2,0)) <= '2017081023'
3个字段是字符型还是数值?把3个字段拼成date或datetime型,再与时间段比较。
select xxx from tbl where (vyear=2016 and vmonth>=7) or (vyear=2017 and vmonth<5)