首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MySQL Datetime -差距标识

MySQL Datetime -差距标识
EN

Stack Overflow用户
提问于 2011-06-03 12:01:24
回答 2查看 545关注 0票数 1

我正在设计一个MySQL数据库,它将包含从远程源收集的每一分钟的数据。

我计划让数据表包含一个datetime字段,因此我可能有3个月的数据,每行代表每分钟的值。

如何轻松识别数据中的差距?我应该使用datetime吗?

我将对应用程序本身使用PHP5。

谢谢,吉姆

EN

回答 2

Stack Overflow用户

发布于 2011-06-03 13:15:41

我会给每一行一个唯一的顺序引用(1,2,3...)然后在表上执行自连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...from mytable t1 join mytable t2 where (t1.ref+1)=t2.ref

根据您存储日期的方式,您可以减去它们(以某种方式),并确定是否存在差距。将所有内容包装在一个查询中,该查询提取有空白处的行。

您可能需要考虑将日期存储为距特定开始日期的秒数。

票数 0
EN

Stack Overflow用户

发布于 2011-06-03 13:27:58

识别差距是一个有趣的问题。最好的方法将取决于差距的大小,但这里有另一种方法来解决它,如果与您拥有的记录数量相比,差距相当大,这种方法可能会更好。

在查询中使用MySQL聚合函数来计算一组存储桶的记录数。存储桶的大小需要与您感兴趣的间隙类型相似。假设您对大约一天左右的间隔感兴趣,我会这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT TO_DAYS(my_timestamp), COUNT(*)
FROM my_table
GROUP BY TO_DAYS(my_timestamp)

这将返回天数和时间戳计数之间的关联。我会用Perl或Java (甚至是R,见后文)这样的语言完成剩下的工作,这样我可以处理数据。

我使用的技术是测试观察到的频率(计数)和预期频率之间的差异,预期频率将是记录总数除以日期范围。每一天的预期频率如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT (SELECT COUNT(*) FROM my_table) / 
        ((SELECT TO_DAYS(MAX(my_timestamp)) FROM my_table) - 
         (SELECT TO_DAYS(MIN(my_timestamp)) FROM my_table) + 1)

现在,对于每个存储桶(请记住,在第一个结果中,完全缺少的天数将不会被返回,而不是作为零的计数返回--您需要将它们视为零,您可以使用统计检验,卡方检验,来估计这种机会的概率(有关详细信息,请参阅:http://en.wikipedia.org/wiki/Pearson%27s_chi-square_test)。计算基本上是((预期-观察)^2/预期)。这是对偏差可能性的估计。

如果您需要找出哪些存储桶在样本中较低,请对这个计算值设置一个合理的阈值,并查找该值超过阈值的存储桶。可能需要一些实验才能设计出合适的值,但这是确定差距的可靠方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6226840

复制
相关文章
mysql datetime查询异常
异常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp (2011-05-25 11:38:40)
WindWant
2020/09/11
1.3K0
MySQL: datetime vs timestamp
表person的create_time字段是datetime类型,modify_time是timestamp类型
十毛
2019/03/27
5.2K0
MySQL中DATETIME与TIMESTAMP
真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时了咋办,毕竟MySQL8都有了,于是翻开了MySQL的官网,决定查一查这两个字段的区别。
江湖安得便相忘
2019/08/21
2.6K0
MySQL中DATETIME与TIMESTAMP
真理永远都不过时,今天由于工作的事情涉及到了这里,印象中只记得DATETIME类型占用8字节,TIMESTAMP类型占用4字节,心想这么久没有更新的知识万一过时了咋办,毕竟MySQL8都有了,于是翻开了MySQL的官网,决定查一查这两个字段的区别。
暮雨
2019/10/11
2.2K0
Mysql的timestamp改datetime
1. timestamp的时间范围是:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC ,自动时区转化,实际存储毫秒数,4字节存储
似水的流年
2021/09/08
5.5K0
mysql datetime、date、time、timestamp区别
mysql数据库: 它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:mm:ss”格式表示的时间值 datetime: “yyyy-mm-dd hh:mm:ss”格式 timestamp: “yyyymmddhhmmss”格式表示的时间戳值 year: “yyyy”格式的年份值。
全栈程序员站长
2022/08/09
1.7K0
mysql datetime格式化日期(mysql start with)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129176.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/29
2.6K0
Mysql - date、datetime、timestamp 的区别
datetime 没有时区概念,客户端传什么时间就存什么时间,省去了转换时区的步骤
小菠萝测试笔记
2021/11/16
6.9K1
mysql 5.5.1 关于datetime的错误
类型是datetime的默认值是current_timestame的。但是在执行脚本的时候,错误信息:
凯哥Java
2022/12/15
1.6K0
mysql 5.5.1 关于datetime的错误
MySQL 时间类型 DATE、DATETIME和TIMESTAMP
5.7 之后的版本(其实应该说5.6.5),在默认的秒精确度上,可以带小数,最多带6位小数,即可以精确到 microseconds (6 digits) precision。
星哥玩云
2022/08/18
2.9K0
MySQL 时间类型 DATE、DATETIME和TIMESTAMP
mysql中Timestamp,time,datetime 时间区别
时间范围:1970-01-01 00:00:00——2037年。 适用场景:TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。 表现形式:TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串 扩展: 如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。 也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。 显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。
瑞新
2020/07/08
1.7K0
【Mysql】MySQL中 TIMESTAMP类型 和 DATETIME类型 的区别
TIMESTAMP:把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
瑞新
2020/12/07
5K0
MySQL datetime(0) NULL DEFAULT NULL 报错
datetime 默认设置为 CURRENT_TIMESTAMP时,CURRENT_TIMESTAMP 的长度同样不能指定为 0
静谧星空TEL
2021/04/27
3.8K0
MySQL datetime时间误差8个小时
数据库设计为datetime类型,如果自动获取的时间有误差8个小时的可以在mysql的配置文件[msyqld],切记在这个段下面配置 default-time-zone = ‘+8:00’ 即可! 备注:ubuntu设置系统时间地区可以,执行tsselect,然后选择之后sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 再输入date看看时间是不是和北京时间一样了~~~
苦咖啡
2018/05/08
3.8K0
mysql datetime、timestamp时间比较 性能提升
1.传统的方法 SELECT * FROM customer lastlogintime >= '2015-01-01 13:50:42' AND lastlogintime <= '2015-02-06 00:00:00' ORDER BY ID DESC 但是传统的方法效率很低。 2.采用UNIX_TIMESTAMP,能有效的提高效率。 SELECT * FROM customer WHERE UNIX_TIMESTAMP(lastlogintime) >= UNIX_TIME
gfu
2020/01/05
2.2K0
MySQL中有关TIMESTAMP和DATETIME的对比
1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
ydymz
2018/09/11
1.6K0
MySQL的datetime V.S timestamp
timestamp 默认允许为 “非空”(not null by default), 如果你在定义“ts TIMESTAMP DEFAULT NULL” 是非法的。 可以指定为空 null ,“ts TIMESTAMP NULL" ,这时可以在添加语句改变默认值。
JavaEdge
2022/11/29
7640
【说站】mysql标识列的特点
通过SET auto_increment_increment=3,标识列可以设置步长。
很酷的站长
2022/11/24
1.4K0
【说站】mysql标识列的特点
​mysql 日期型字段性能 datetime < timestamp < int
datetime date time timestamp 视觉上与datetime一样 int 存的是时间缀 视觉不明显,好比较 mysql UNIX_TIMESTAMP FROM_UNIXTIME 了解一下 select * from wap_login where UNIX_TIMESTAMP(creat_date) between UNIX_TIMESTAMP('2018-07-26 00:00:00') and UNIX_TIMESTAMP('2018-07-26 23:59:59') sele
Cabber
2018/07/26
1.9K0
细说mysql的timestamp int datetime的区别
timestamp int datetime 存储长度 4字节(32位) 4字节(32位) 8字节(64位) 时间显示格式 Y-m-d H:i:s(2018-01-01 00:00:00) 时间戳(1530712944) Y-m-d H:i:s(2018-01-01 00:00:00) 是否支持mysql提供的时间函数 支持 不支持 支持 时间失效时间 1970年-2038年 有符号整型最大支持2038年 无符号整型最大支持2100年 0000-9999年 时间存储 utc时间保存 (it store
公众号-利志分享
2022/04/25
8820

相似问题

MYSQL按“差距”填充组

34

使用mysql查找日期差距

33

SQLAlchemy -日期范围差距标识,说明重叠的范围

14

查找mysql时间中的差距

12

PHP Datetime与MySQL datetime

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文