Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何比较有时区和无时区的日期_Sql_Postgresql - Fatal编程技术网

Sql 如何比较有时区和无时区的日期

Sql 如何比较有时区和无时区的日期,sql,postgresql,Sql,Postgresql,我必须比较这两个日期才能从数据库中获取最后10分钟的记录,我使用的是postgresql 我写了这个查询 select * FROM x_table WHERE x_time >= (NOW()::TIMESTAMP WITHOUT TIME ZONE - interval '10 minutes'); x_time是没有时区的时间戳,因此我将另一个转换为相同的时间戳,但它不会给出结果 查询应该写入最后1分钟的记录,但我认为由于时区问题,它没有给出结果 如何解决此问题?如果x_time

我必须比较这两个日期才能从数据库中获取最后10分钟的记录,我使用的是postgresql

我写了这个查询

select *
FROM x_table 
WHERE x_time >= (NOW()::TIMESTAMP WITHOUT TIME ZONE - interval '10 minutes');
x_time是没有时区的时间戳,因此我将另一个转换为相同的时间戳,但它不会给出结果

查询应该写入最后1分钟的记录,但我认为由于时区问题,它没有给出结果


如何解决此问题?

如果x_time是没有时区的时间戳,则应为NOW()函数指定适当的时区

试一试


显示我们
选择max(x_time),NOW()::从x_表中选择没有时区的时间戳
?…这将给出以下结果'2017-02-09 14:41:11.828966','2017-02-09 05:46:55.253082',然后我想您现在不应该隐式转换()-只需使用
从x_表中选择*,其中x_time>=(NOW()-间隔'10分钟')是的,我先尝试过,但由于这两种方法都会以不同的格式为我提供时间,并且我正在比较它们,因此不会给出正确的结果如果您使用数据填充了不带时区的
时间戳
字段,则会使用当前时区保存,而不是UTC,因此如果您使用相同的时区选择它,对不起,你不必做任何转换。怎么样
(现在()在时区'-04'-间隔'10分钟')
?快15点了,我看到你的最长时间(t_time)是几分钟前的14:41。你能把它标记为答案吗?我编辑了我的第一篇文章
select *FROM x_table WHERE x_time >= (NOW()  at time zone '-04' - interval '10 minutes')