作者JYHuang (夏天到了,冷不起来了说)
看板PHP
标题[讨论] timestamp的平均时间统计
时间Tue May 22 16:16:25 2012
目前资料库里有某栏位是记录睡眠时间、存的是一群人在一段时间里的睡眠时间
而储存格式则是以timestamp的方式储存的~
想把样本的睡眠时间做平均的统计,(平均为 PM 10:30入睡)这样
如果在资料库里把timestamp平均起来再转成时间
除了时区造成的误差外、还会有跨日造成的误差的样子
後来我用avg((timestamp+28800)%86400)先转成每日时间再做平均计算
不过後来发现也是会因为跨日的关系出现偏移..
用资料库计算似乎要考虑到满多的状况,
如果直接取原始资料,再由PHP做时间转换的计算。
会不会比较精准呢?
user date sleeptime(timestamp)
a 2012/2/17 1329491940
a 2012/2/19 1329583260
a 2012/2/20 1329675480
a 2012/2/21 1329756840
像是先算出每天下午6:00的timestamp
再算出偏移量,取平均
再由6:00推算出时间~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.202.164
1F:推 dio833:你的叙述怪怪的,sleeptime存的是int吧?如果是的话 05/22 16:39
2F:→ dio833:avg((sleeptime-unix_timestamp(date)+28800)%86400) 05/22 16:39
3F:→ dio833:以当天为基准就好了,全部还原到1970年吧 05/22 16:40
4F:→ JYHuang:问题是...informix没有日期转timestamp的函式啊 Orz 05/22 17:08
5F:→ dio833:那就自己写在sql中吧,只是四则运算>< 05/22 17:12
6F:→ dio833:你可以先算出date与1970/1/1相差的日数,乘上秒数... 05/22 17:14
7F:→ JYHuang:算年份还要考虑到润年啊... 05/23 09:21
8F:推 dio833:informix没有日期计算函式吗? 05/23 10:04
9F:→ JYHuang:能找到的资料不多...目前我是全劳出来给PHP算 @.@ 05/23 15:25
10F:→ gpmm:感觉很多规则上的问题… o_o 05/24 00:44
11F:→ JYHuang:偏偏informix的脾气又很难搞 Q.Q 05/24 09:26