数据库中查询某个月的全部记录,日期列为Date类型数据
数据表如图
若查询六月的全部数据,sql应写为
select * from t_ordersetting where orderDate BETWEEN '2021-6-1' and '2021-6-30'
查询结果即为6月所有数据。
日期加减法
可是实际问题中,若查询某年某月的所有数据,由于每个月的天数不同,并不能确定具体的时间,此时可以使用日期的加减法
DATE_ADD(‘2021-6-30’, interval 1 DAY ) — 加法
DATE_SUB(‘2021-6-31’, interval 1 DAY ) — 减法
此时若查询yyyy年MM月的数据可以写成
select * from t_ordersetting where orderDate BETWEEN 'yyyy-MM-1' and DATE_SUB('yyyy-MM+1-1', interval 1 DAY )
如查询2021年6月的数据
select * from t_ordersetting where orderDate BETWEEN '2021-6-1' and DATE_SUB('2021-7-1', interval 1 DAY )