在 Postgres 中使用不到上午 9 点的时间删除所有数据
Deleting all the data using time less than 9am in Postgres
我试图从 Postgres 数据库中删除每天 8:58am 之前发生的所有行,而不删除之前的任何日期。
我尝试使用 SELECT * from where DATEPART(hh, request_time) < 09,这在不同数据库上使用 Microsoft SQL 服务器时有效,但是当我 运行 针对 PostgreSQL 的相同脚本 我在 "hh" 上收到错误,因为它说此列不存在。
这是我在 select 其他数据库上的数据时得到的。我希望在不影响前一天的情况下,最后将其删除
SQL 服务器:SELECT * from <table> where DATEPART(hh, request_time) < 09
2019-04-26 08:59:26.000
2019-04-27 03:01:25.000
2019-04-29 02:06:46.000
MobaXterm:
SELECT * from <table> where DATEPART(hh, start_time) < 09;
error message: column "hh" does not exist
我希望删除数据库 table 中上午 9 点之前的所有行,因此我最后只会在数据库中得到上午 9 点之后的结果。
编辑:这现在工作了一个小时,但是,我希望删除 8:58 之前的所有内容。我目前有 "select * from table where start_time::time < '05:45:01';" 正在工作,除了包括时间之后的一些额外行,例如:2019-02-27 05:46:15.152079
应该是hour
而不是hh
SELECT * from table_name where DATEPART(hour, start_time) < 09
Postgres 不是 SQL 服务器。您可以使用 extract()
:
select *
from <table>
where extract(hour from start_time) < 9;
更一般地说,您可以使用:
where start_time::time < '9:00:00'
我试图从 Postgres 数据库中删除每天 8:58am 之前发生的所有行,而不删除之前的任何日期。
我尝试使用 SELECT * from where DATEPART(hh, request_time) < 09,这在不同数据库上使用 Microsoft SQL 服务器时有效,但是当我 运行 针对 PostgreSQL 的相同脚本 我在 "hh" 上收到错误,因为它说此列不存在。
这是我在 select 其他数据库上的数据时得到的。我希望在不影响前一天的情况下,最后将其删除
SQL 服务器:SELECT * from <table> where DATEPART(hh, request_time) < 09
2019-04-26 08:59:26.000
2019-04-27 03:01:25.000
2019-04-29 02:06:46.000
MobaXterm:
SELECT * from <table> where DATEPART(hh, start_time) < 09;
error message: column "hh" does not exist
我希望删除数据库 table 中上午 9 点之前的所有行,因此我最后只会在数据库中得到上午 9 点之后的结果。 编辑:这现在工作了一个小时,但是,我希望删除 8:58 之前的所有内容。我目前有 "select * from table where start_time::time < '05:45:01';" 正在工作,除了包括时间之后的一些额外行,例如:2019-02-27 05:46:15.152079
应该是hour
而不是hh
SELECT * from table_name where DATEPART(hour, start_time) < 09
Postgres 不是 SQL 服务器。您可以使用 extract()
:
select *
from <table>
where extract(hour from start_time) < 9;
更一般地说,您可以使用:
where start_time::time < '9:00:00'