PostgresSQL-日期工作异常
我需要为所有行创建select,因为它目前已超过15分钟PostgresSQL-日期工作异常,sql,postgresql,timestamp,Sql,Postgresql,Timestamp,我需要为所有行创建select,因为它目前已超过15分钟 SELECT last_answer_date FROM messages WHERE last_answer_date > NOW() - INTERVAL '15 minutes'; 当我在16:51:00开始此“立即选择”时,我得到结果: 2019-01-17 16:25:00 换句话说,我的意思是: 给我所有最后回答日期>16:51:00-15分钟的行,因为现在是16:51:00 给我所有的行`上次回答日期>16:36:
SELECT last_answer_date FROM messages WHERE last_answer_date > NOW() - INTERVAL '15 minutes';
当我在16:51:00开始此“立即选择”时,我得到结果:
2019-01-17 16:25:00
换句话说,我的意思是:
给我所有最后回答日期>16:51:00-15分钟的行,因为现在是16:51:00
给我所有的行`上次回答日期>16:36:00,因为现在16:51:00-15分钟=16:36:00
我得到16:25:00但是16:25:00<16:36:00
编辑:当我改变>到现在-间隔'15分钟'
17:17
我想你的时区可能有问题。 你可以用show时区检查它;
或者直接使用select now,看看它是否符合您的期望。我认为这可能是您的时区问题。 你可以用show时区检查它;
或者直接使用select now,看看它是否符合您的期望。如果您有一个包含大量数据的大表,您将遇到一些性能问题,因为当您调用 现在-间隔“15分钟”内部postgress需要将间隔转换为日期 我认为一个更好的方法是,您应该做类似的事情来提高性能,因为所有日期都是长值,您应该像长值一样进行比较
-- 15 minutes in millis = 900000
-- 15 minutes in secods = 900
-- Retrive all data inserted at latest 15 minutes
SELECT last_answer_date FROM messages WHERE (NOW() - last_answer_date) < 900;
-- Retrive all data inserted more than 15 minutes
SELECT last_answer_date FROM messages WHERE (NOW() - last_answer_date) > 900;
如果您有一个包含大量数据的大表,您将遇到一些性能问题,因为当您调用 现在-间隔“15分钟”内部postgress需要将间隔转换为日期 我认为一个更好的方法是,您应该做类似的事情来提高性能,因为所有日期都是长值,您应该像长值一样进行比较
-- 15 minutes in millis = 900000
-- 15 minutes in secods = 900
-- Retrive all data inserted at latest 15 minutes
SELECT last_answer_date FROM messages WHERE (NOW() - last_answer_date) < 900;
-- Retrive all data inserted more than 15 minutes
SELECT last_answer_date FROM messages WHERE (NOW() - last_answer_date) > 900;
上次回答日期的数据类型是什么?timestamp还是timestamp?@a_horse_和_no_name timestamp您想要15分钟后插入的记录是15分钟后插入的还是最后15分钟后插入的记录?我希望在最后15分钟内插入的记录不包括在结果中。我想要获取插入日期早于现在减去15分钟的所有行上次应答日期的数据类型?timestamp还是timestamp?@a_horse_和_no_name timestamp你想要15分钟后插入的记录是15分钟后插入的还是最后15分钟后插入的记录?我希望最后15分钟内插入的记录不包括在结果中。我想获取插入日期比现在早15分钟的所有行坚信postgreSQL server正在我的机器上运行。但事实并非如此。我坚信postgreSQL服务器是在我的机器上运行的。但事实并非如此。