如何查询数据库某个月中哪些天存在历史记录

2017-05-11 20:58:01 +08:00
 kuno1

某个月中的某些天有历史记录,其它天都没有历史记录. 请问如何查询后,将有历史记录的天用数组的格式返回,

例如 "hasLog":[1,3,10,29,30]

1410 次点击
所在节点    数据库
9 条回复
lancerliu
2017-05-11 22:05:06 +08:00
请教这种问题不带表结构的,也不说明是什么数据库?
数据库里面放的数据是最终数据,不是过程。如果一定要看的话,有 2 种情况:
1.你这张就是日志表,记录了数据增删改每个过程,那你检查 pk 的插入时间和删除时间,就可以获得那天开始有数据,哪天开始没有数据
2.你这张表没有 1 的功能,只存放结果,那过程在哪里呢,在数据库的日志里面。这样的话,看数据库的,比如 mysql 就默认不开日志的(只有 error 日志),其他的基本都要专门的软件来查数据库日志,你还要保证数据库没清理过日志。

所以,你的这个要求,就需要一开始就设计一张日志表,否则,我想不出怎么解决。
bombless
2017-05-11 23:45:21 +08:00
Group_concat (distinct xxx) 吧。xxx 的部分我忘了,应该是有函数直接取天数吧,应该是不需要去格式化日期的
littleylv
2017-05-11 23:51:00 +08:00
mysql: select 日期字段 from table group by 日期字段?
cye3s
2017-05-11 23:57:02 +08:00
问题不是这么问的啊,浪费的还是你的时间。啥库?表结构?什么叫有历史记录? hbase 的带时间戳的旧版本?关系型数据库历史记录表直接 select distinct 日期取 day 部分?还是楼上说的类似审计的功能?
yidinghe
2017-05-12 07:58:03 +08:00
像这种问题只要回答:用查询语句去找就可以了。
kuno1
2017-05-12 08:10:41 +08:00
详情如此,传感器的 sqlite 数据库,有记录就写入数据库,包括精确到毫秒的时间戳和传感器数据,如果使用 distinct,那么是否需要添加一个日期的重复字段?
yidinghe
2017-05-12 09:05:10 +08:00
存储空间允许的前提下,添加一个日期字段索引起来,查询会更快。
armoni
2017-05-12 09:12:36 +08:00
SELECT date(datatime) from history GROUP BY date(datatime); 一般数据库记录都有日期字段吧
simen513
2017-05-23 11:03:26 +08:00
应该是要打开数据库的审计功能,设置那些需要等级,然后才有可能登记成日志。不同的数据库设置不一样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360717

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX