当前日期和前一周之间的SQL查询
这是我当前的sql查询,它只是简单地读取CPU%和作业所有者,但如果是在当前日期(比如14天(2周)之前)之间,我很难合并上面的总和 在当前日期和前一周之间的SQL查询,sql,postgresql,Sql,Postgresql,这是我当前的sql查询,它只是简单地读取CPU%和作业所有者,但如果是在当前日期(比如14天(2周)之前)之间,我很难合并上面的总和 在sge\u作业使用情况表中,两者都属于: ju\u开始时间,ju\u结束时间 有谁能帮我检查一下它是否在当前日期(14天前)之间,然后检查end\u timedate,看它是否还在运行 在下面输出我需要的答案: SELECT sge_job.j_owner AS "Owner" ,SUM(sge_job_usage.ju_cpu) AS "CPU T
sge\u作业使用情况表中,两者都属于:
ju\u开始时间
,ju\u结束时间
有谁能帮我检查一下它是否在当前日期(14天前)之间,然后检查end\u time
date,看它是否还在运行
在下面输出我需要的答案:
SELECT sge_job.j_owner AS "Owner"
,SUM(sge_job_usage.ju_cpu) AS "CPU Total"
FROM sge_job_usage, sge_job
GROUP BY j_owner;
目前还不清楚您是否需要与ju end_日期相同的条件,但结构应为:
SELECT sge_job.j_owner AS "Owner"
,SUM(sge_job_usage.ju_cpu) AS "CPU Total"
FROM sge_job_usage, sge_job
WHERE ju_start_time BETWEEN LOCALTIMESTAMP - INTERVAL '1 week' AND LOCALTIMESTAMP
GROUP BY j_owner;
WHERE ( ju_start_time, ju_end_time )
OVERLAPS
( CURRENT_DATE - INTERVAL '14 days', CURRENT_DATE )
ADC语法对PostgreSQL无效
我不明白你想把哪一个条件应用到ju_end_date上。但它应该类似于ju_开始时间
...
WHERE ju_start_time BETWEEN getdate() and DateAdd(d,-14, getdate())
我没有一个测试环境,所以我不能测试这个,但我认为它应该可以工作
有关主题的更多信息,请查看
编辑:如前所述,两个表需要一个连接条件。我假设这两列是DATE
类型。那么你需要这样的东西:
SELECT sge_job.j_owner AS "Owner"
,SUM(sge_job_usage.ju_cpu) AS "CPU Total"
FROM sge_job_usage, sge_job
WHERE sge_job_usage.C1 = sge_job.C2
AND ju_start_time BETWEEN LOCALTIMESTAMP - INTERVAL '14 days' AND LOCALTIMESTAMP
GROUP BY j_owner;
或者这(取决于您要检查的具体情况:
WHERE ju_start_time BETWEEN CURRENT_DATE - INTERVAL '14 days'
AND CURRENT_DATE
AND ju_end_time >= CURRENT_DATE
但查询使用了2个表,并且没有连接条件。它应该是:
SELECT sge_job.j_owner AS "Owner"
,SUM(sge_job_usage.ju_cpu) AS "CPU Total"
FROM sge_job_usage, sge_job
WHERE ju_start_time BETWEEN LOCALTIMESTAMP - INTERVAL '1 week' AND LOCALTIMESTAMP
GROUP BY j_owner;
WHERE ( ju_start_time, ju_end_time )
OVERLAPS
( CURRENT_DATE - INTERVAL '14 days', CURRENT_DATE )
当我现在尝试运行查询时,函数getdate()表示不存在?选择sge_job.j_owner作为“owner”,sge_job_usage.ju_start_time,SUM(sge_job_usage.ju_cpu)作为sge_job_usage中的“cpu总计”,sge_job在getdate()和DateAdd(d,-14,getdate()之间的开始时间)组由j_owner;我很抱歉!!我没有看到postgre标记:我的代码是用于tsql/sqlserver!!这可能会有帮助:啊,进度,它现在显示了一个输出,但它什么都没有,我已经更改了-integer“say 300”,在我数据库中的信息范围内,但除了表标题之外,查询中没有输出任何内容,你有什么想法吗可能会发生什么?如果可能的话,ju_start_time设置为没有时区的时间戳?我已经编辑了答案。您应该阅读我发布的链接,它包含有助于解决您的问题的有价值的信息。它应该在LOCALTIMESTAMP-INTERVAL“14天”和LOCALTIMESTAMP之间,以显示任何结果。谢谢对于你们两个的输入,现在已经得到了显示所需结果的结果,答案显示在我的原始问题下now@ypercube,其目的是选择开始时间或结束时间,以使其从当前日期返回一定数量的天数,并查看其是否处于活动状态,只需更改天数并手动计算出现的时间这两列的数据类型是什么?日期,时间,时间戳?