V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kuno1
V2EX  ›  数据库

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

  •  
  •   kuno1 · 2017-05-11 20:58:01 +08:00 · 1527 次点击
    这是一个创建于 2757 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    所以,你的这个要求,就需要一开始就设计一张日志表,否则,我想不出怎么解决。
    bombless
        2
    bombless  
       2017-05-11 23:45:21 +08:00 via Android
    Group_concat (distinct xxx) 吧。xxx 的部分我忘了,应该是有函数直接取天数吧,应该是不需要去格式化日期的
    littleylv
        3
    littleylv  
       2017-05-11 23:51:00 +08:00
    mysql: select 日期字段 from table group by 日期字段?
    cye3s
        4
    cye3s  
       2017-05-11 23:57:02 +08:00 via Android   ❤️ 1
    问题不是这么问的啊,浪费的还是你的时间。啥库?表结构?什么叫有历史记录? hbase 的带时间戳的旧版本?关系型数据库历史记录表直接 select distinct 日期取 day 部分?还是楼上说的类似审计的功能?
    yidinghe
        5
    yidinghe  
       2017-05-12 07:58:03 +08:00 via Android   ❤️ 1
    像这种问题只要回答:用查询语句去找就可以了。
    kuno1
        6
    kuno1  
    OP
       2017-05-12 08:10:41 +08:00
    详情如此,传感器的 sqlite 数据库,有记录就写入数据库,包括精确到毫秒的时间戳和传感器数据,如果使用 distinct,那么是否需要添加一个日期的重复字段?
    yidinghe
        7
    yidinghe  
       2017-05-12 09:05:10 +08:00 via Android
    存储空间允许的前提下,添加一个日期字段索引起来,查询会更快。
    armoni
        8
    armoni  
       2017-05-12 09:12:36 +08:00
    SELECT date(datatime) from history GROUP BY date(datatime); 一般数据库记录都有日期字段吧
    simen513
        9
    simen513  
       2017-05-23 11:03:26 +08:00
    应该是要打开数据库的审计功能,设置那些需要等级,然后才有可能登记成日志。不同的数据库设置不一样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.