MySQL查询某一天的数据
经常会遇到,需要在数据库中查询某一天生成的数据,而数据库中存储的字段是以timestamp格式。例如2017/9/27这一天所有的数据量,可以使用下几个方法 app_vote_log_data表的结构如下
-- 方法一(索引idx_create_at范围查询),推荐 select * from vote_log_data WHERE created_at > 2020-04-09 and update_time < 2020-04-10 -- 方法二(索引idx_create_at范围查询),推荐 select * from vote_log_data WHERE created_at between 2020-04-09 00:00:00 and 2020-04-09 23:59:59 -- 方法三(索引失效) select * from vote_log_data where DATE_FORMAT(created_at,"%Y%m%d") ="20200409" -- 方法四(索引失效) select * from vote_log_data WHERE substring(Convert(char(10),created_at ,112),1,8)=20200409 -- 方法五(索引失效) select * from vote_log_data WHERE year(created_at ) = 2017 and month(created_at )= 09 and day(created_at ) = 27 -- 方法六(索引失效) select * from vote_log_data WHERE ( datediff ( created_at , 2020-04-09 ) = 0 )
如果表中的数据过大,可以把查询出来的数据查入到另一张一样结构的表中(vote_log_data_history)
# 查询某天数据并查入到另一张表中 insert into vote_log_data_history select * from vote_log_data where DATE_FORMAT(created_at,"%Y%m%d") ="20200409"
在插入完成后,可以进行对账类的操作后,再对表中的数据进行删除即可
insert from vote_log_data where DATE_FORMAT(created_at,"%Y%m%d") ="20200409"
下一篇:
阿里巴巴服务框架:Dubbo