PSQL 查询 return 结果,其中创建日期在最近一周内

PSQL query to return results where creationdate is within the most recent week

我有这个 PSQL 查询:

 SELECT status, username, jobname, creationdate FROM t_job WHERE jobname = 'Loadon';

这给了我这个数据(前 3 行示例):

 succeeded   | danielp      | Loadon  | 2018-03-20 12:30:25.655+11
 succeeded   | philm        | Loadon  | 2018-03-05 15:18:50.225+11
 succeeded   | garethy      | Loadon  | 2018-03-16 17:09:23.596+11

我需要在我的 WHERE 语句中添加一个日期条件,以便我只获得最近一周内的结果,从周一开始。因此,如果今天是星期四,我需要星期一至星期四的所有结果。

我不确定 PSQL 具有哪些日期功能或如何使用它,以及如何将我的创建日期字符串读取为可以比较的实际日期。

您可以使用 date_trunc():

SELECT status, username, jobname, creationdate
FROM t_job
WHERE jobname = 'Loadon' AND
      creationdate >= datetrunc('week', current_date);

周定义为从星期一开始,这正是您想要的。