当前位置: 首页 > 知识库问答 >
问题:

DHIS2中物理存储的上传/输入聚合报告的时间戳在哪里?如何从中提取时间戳数据?

韦叶秋
2023-03-14

我一直试图在DHIS2中找到存储上传聚合报告时间戳的表。我需要使用SQL视图创建报表的数据。我设法找到了一个名为datavalueaudit的表,它有一个时间戳列,但我尝试的每个查询都会拉出组成聚合报告的dataelements的时间戳。我还是sql和dhis2的新手,所以我不知道如何解决这个问题。我试图修改一个查询,我有点理解,但仍然觉得有点复杂

以下是原始查询

下面是我尝试修改的

选择DISTINCT P.STARTDATE,prov.name为省,par.name为cheifdom,哦。叫村庄,regexp_replace(OU.PhoneNumber,'+260','0'),如果B.reported为NULL,则0::Integer否则1::Integer按报告结束,dva.timestamp作为datasetsource dss交叉联接中的“按时报告”(选择distincent periodid,startdate从startdate<=now()和periodtypeid=(SELECT periodtypeid FROM periodtype WHERE name='monthly')按startdate DESC OFFSET 1 LIMIT 12)p LEFT JOIN(选择distincent dv.sourceID,Periodid DV,从datavalue dv内部联接报告为TRUE(选择DISTINCT periodid,startdate从period WHERE startdate<=now()和periodtypeid=(选择periodtypeid FROM periodtype WHERE name='monthly')顺序BY startdate DESC OFFSET 1 LIMIT 12)a在dv.periodid=a.perioddid WHERE dv.deriodid WHERE dv.dataelementid IN(选择DISTINCT dataelementid FROM datasetmembers WHERE datasetid=(SELECT dataelementid FROM datasetid WHERE uidPeriodid DV,从datavalueaudit dv内部联接报告为TRUE(选择DISTINCT periodid,从startdate<=now()的期间开始startdate和periodtypeid=(选择periodtypeid FROM periodtype WHERE name='monthly')顺序BY startdate DESC offst 1 LIMIT 12)a在dv.periodid=a.periodid WHERE developy 1 LIMIT IN(选择DISTINCT MAX(dataelementid)FROM datasetmembers WHERE datasetid='29827'GROUP BY datasetid)中(选择DISTINCT MAX(dataelementid)FROM datasetid='29827'GROUP BY datasetid)k在par.organisationunitid内部联接organisationunit prov ON par.parentid=prov.organisationunitid内部联接_periodstructure ps ON p.periodid=ps.periodid WHERE dss.datasetid=(从dataset中选择datasetid,其中uid='hbcr2flc9jm')按prov.name、par.name、ou.name、p.startdate、dva.timestamp排序

我尝试修改的查询只提取上载完成的聚合报告的数据集中的所有dataelements的时间戳,而不是只上载完成的聚合报告的时间戳

我想添加一个新列,它从存储时间戳数据的表中提取时间戳数据,但仅适用于已上载完成的聚合报告*(记录)的情况。

共有1个答案

裴令秋
2023-03-14

在DHIS2中没有直接的汇总报告的概念。查看datavalue表的已创建列将给出一个近似值。如果数据上载客户端使用数据值集并将completed属性设置为true,有效地创建了完整的数据集注册,则可以查询completedatasetregistration表中的记录。

 类似资料:
  • 我选择“无时区”是因为我知道我的应用程序使用的所有时间戳总是UTC。就我得到的文档而言,“with timestamp”的唯一区别是,我可以提供其他时区的值,然后将其转换为UTC。然而,我想避免这样的自动转换,因为如果我知道我的值是UTC,它们几乎没有任何好处。 当我在测试表中添加新记录并使用pgAdmin查看表的内容时,我可以看到插入日期已正确地保存为UTC格式。 但是,当我尝试使用JDBC选择

  • 请帮助理解为什么不提取为8:15am? W3C日期和时间格式 示例1994-11-05T08:15:30-05:00对应于美国东部标准时间1994年11月5日上午8:15:30。 用于格式化和解析的日期时间模式

  • 我几天来一直在找这个。 当然,更经常使用Presto的其他人知道如何正确地表达转换。(我无法重新启动Presto或Hive服务器来强制时区进入UTC(顺便说一句)。

  • 我使用这个库在我的Android应用程序中使用FFmpeg。我正在从视频中提取帧,然后将它们添加到裁剪查看器中。因此,每一帧都需要表示视频中的某个时间帧。下面是我当前提取帧的ffmpeg代码: 感谢任何帮助

  • 问题内容: 我有一个日志记录表,出于统计原因,该表将包含数百万的写入。所有列都是int外键。我还将为每一行添加一个时间戳列。鉴于DATETIME占用8位-我将用来将存储空间(和该列的索引)减少一半。 但是,我想知道此列何时不再起作用。在2038年1月19日凌晨3:14:07,对于UNIX时间戳,值9,999,999,999将是一个问题- 但是MySQL中的unsigned int仅可容纳4,294

  • 我试图在包含微秒级时间戳的cassandra中存储数据。cassandra的文档称“时间戳”数据类型可以存储纪元以来的毫秒,但互联网上的几条消息似乎暗示cassandra可以本地存储微秒时间戳。 在卡桑德拉中存储微秒级时间的最佳方法是什么?我是不是应该省略日期部分,存储很长一段呢? 正在中止记录#1的导入。以前插入的记录仍然存在,之后的一些记录也可能存在。 我的cassandra版本:[cqlsh