postgres select 查询时间列生成输出错误
postgres select query on time column generate output wrong
我正在使用 postgres,并且我有这条包含 date_time 列的记录:
"2015-09-01 09:41:15"
当我从 pgadmin 执行 psql 查询时:
select * from table where date_time >= '2015-08-31' and date_time <= '2015-09-01'
即使我使用了 = 符号,这条特定的记录也没有出现。如果我使用 <= '2015-09-02' 它就会出现。有没有办法让记录显示在使用 <= '2015-09-01' 的查询中,因为它 = 到查询的时间?
我的时间栏:
date_time timestamp without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone,
你忘记时间了。您可以将 date_time
字段投射到日期以进行比较(这会影响性能,在大型数据集中可能会非常慢):
select * from table
where date_time >= '2015-08-31' and date_time::date <= '2015-09-01'
或者您可以将开始日期和结束日期转换为时间戳:
select * from table
where date_time >= '2015-08-31' and date_time < ('2015-09-01'::date+1)::timestamp
我正在使用 postgres,并且我有这条包含 date_time 列的记录:
"2015-09-01 09:41:15"
当我从 pgadmin 执行 psql 查询时:
select * from table where date_time >= '2015-08-31' and date_time <= '2015-09-01'
即使我使用了 = 符号,这条特定的记录也没有出现。如果我使用 <= '2015-09-02' 它就会出现。有没有办法让记录显示在使用 <= '2015-09-01' 的查询中,因为它 = 到查询的时间?
我的时间栏:
date_time timestamp without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone,
你忘记时间了。您可以将 date_time
字段投射到日期以进行比较(这会影响性能,在大型数据集中可能会非常慢):
select * from table
where date_time >= '2015-08-31' and date_time::date <= '2015-09-01'
或者您可以将开始日期和结束日期转换为时间戳:
select * from table
where date_time >= '2015-08-31' and date_time < ('2015-09-01'::date+1)::timestamp