一、当天数据
select ifnull(sum(price),0) from 表 where DATEDIFF(NOW(),字段)
二、查询当月数据
select ifnull(sum(需要求和的字段),0) from 表 where DATE_FORMAT(字段,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
三、返回结果如果为空,自动填充为0
select ifnull(sum(求和字段),0) from 表名
四、查询两个时间只差
TimeStampDiff() 实现计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
求datetime_expr1 与 datetime_expr2之间的整数差
unit:单位包含:
FRAC_SECOND 表示间隔是毫秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 星期
MONTH 月
QUARTER 季度
YEAR 年
例如:查询 addtime 与 当前时间相差 10秒以内的数据
select * from Rong_Code where TIMESTAMPDIFF(SECOND,addtime,now()) <=10 order by id desc
五、mysql 时间戳类型字段查询(timestamp)
错误代码
1596211200:2020-08-01 00:00:00
1596556799:2020-08-04 23:59:59
select scan_time from task where scan_time >= 1596211200
-- 结果:筛选结果达不到预期,可以查询全表数据
select scan_time from task where scan_time <= 1596556799
-- 结果:筛选结果达不到预期,查不到数据
select scan_time from task where scan_time BETWEEN 1596211200 and 1596556799
-- 结果:筛选结果达不到预期,查不到数据
select scan_time from task where scan_time >= 1596211200 and scan_time <= 1596556799
-- 结果:筛选结果达不到预期,查不到数据
正确查询:
1596211200:2020-08-01 00:00:00
1596556799:2020-08-04 23:59:59
select scan_time from task where scan_time >= '2020-08-01 00:00:00'
select scan_time from task where scan_time <= '2020-08-04 23:59:59'
select scan_time from task where scan_time BETWEEN '2020-08-01 00:00:00' and '2020-08-04 23:59:59'
-- 结果:可以实现时间戳筛选效果