mysql 时间相减的问题

mysql 时间相减的问题,第1张

如果你是想获取两个时间的秒差,从你使用from_unixtime,可以看出,`date`字段,你用的是int型存储时间戳,那么你完全可以使用now()-`date`用来获取秒差,
另外,就这条语句来讲,from_unixtime本身就是可以带有转换时间格式参数的
from_unixtime(`date`, '%Y-%m-%d %H:%i:%s')

接上一篇,这一篇主要介绍三类窗口函数,分布函数、前后函数和头尾函数。

分布函数

PERCENT_RANK基于RANK()函数的排序结果,percent_ranks列按照公式(rank-1) / (rows-1)带入rank值(row_num列)和rows值,其中,rank为RANK()函数产生的序号,rows为当前窗口的记录总行数。

CUME_DIST,分组内小于等于当前rank值的行数/分组内总行数,这个函数比percen_rank使用场景更多。可以用于计算大于等于或小于等于当前订单金额的订单比例有多少。

前后函数

分区中位于当前行前n行(LAG)或后n行(LEAD)的记录值。这两个函数在实际中还是有使用场景,比如要查询上一个订单距离当前订单的时间间隔,或者本条订单距离下一条订单的时间间隔。

如果要计算距离上一条订单的天数,只需要增加一列,用DATEDIFF函数把两个日期相减就可以了。如果是第一条订单,就会返回空值。

头尾函数

头尾函数FIRST_VAL和LAST_VAL函数,用来得到分区中的第一个或最后一个指定参数的值。可以用来查询每个用户第一次和最后一次的订单数据信息,然后就行比较 *** 作。需要注意的是,最后一条订单时间是基于当前订单时间来看的,所有是等于当前订单时间。

End

◆ PowerBI开场白
◆ Python高德地图可视化
◆ Python不规则条形图

在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。

1、创建测试表及插入测试数据:

create table test
(time1 datetime,
time2 datetime)
insert into test values ('2015-04-03 17:01:09','2015-06-03 22:09:30')

2、目前要结算time2和time1的时间差,用如下语句:

select round(TIMESTAMPDIFF(second,time1,time2)/3600,2) from test

结果如图:

解读:

首先,先用

select TIMESTAMPDIFF(second,time1,time2) from test

来计算两个时间之间的秒数差。

然后,得到的结果除以3600,即为这两个时间之间的小时数。

最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。

declare @str int
set @str=datediff(second,'2016-01-01','2017-08-01 08:12:30') --日期时间差
select cast(@str/(86400365) as char)+'年'
select cast(@str/86400%365 as char)+'天'
select cast(@str/3600%24 as char)+'时'
select cast(@str/60%60 as char)+'分'
select cast(@str%60 as char)+'秒'

你自己修改下 然后字符串链接就能得出结果

有问题的,你now()取出的字符串类型的,顺便问下你定义的字段是什么类型的,字符串怎么可能用四则符号来描述- -#
估计你放的不是时间戳类型的,取条数是吧=》这样写吧:
select count(state) from A where unix_timestamp(endtime) >current_timestamp() ;

select sum(adata-bdata)
from
(select data,time from 表名 where id=1) a,
(select data,time from 表名 where id=2) b
where atime=btime
<p>你看是这个意思吗?</p>
<p>不过这样的话数据要求比较严格,同一时间id为1为2的只能有1条,多了会出错,但是大概意思就是上边所写</p>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13392410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存