MySql 查询 时间类型与时间戳类型

一、当天数据 

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'

-- 结果:可以实现时间戳筛选效果

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值