如何在postgres

时间:2016-09-07 15:23:11

标签: sql database postgresql

我有一个查询,我只想选择一天的记录。比如b / w '00:00:00'到'23:59:59'。

例如,如果用户选择数据和时间(2016-06-27 10:40),那么我的查询将是:

 select * from users where logtime between ? and '2016-06-27 23:59:59' // logtime is a timestamp

根据html页面的要求,我只需要提供一个选项,用户可以选择一个日期和时间,然后提交搜索。我很困惑,在SQL查询中我如何追加结束日期(无论用户选择的日期)和时间(始终是23:59:59)。 有人能给我一个想法是否有任何postgres函数可以帮助从给定日期提取日期并追加时间(23:59:59)并返回日期时间?

2 个答案:

答案 0 :(得分:1)

您只需将时间戳转换为date即可从时间戳中提取日期。所以,如果我理解你的问题是正确的,你应该这样:

select * from users where logtime::date='2016-06-27 10:40'::date;

编辑:如果您真的想简单地提取日期以将其与不同的时间戳组合,您可以通过将时间戳作为字符串来操作,例如:

SELECT ('2016-06-27 10:40'::date || ' 23:59:59')::timestamp;

答案 1 :(得分:0)

如果你想使用berween子句,你可以尝试这个

select * from users where logtime between in_date::timestamp and 
    (in_date::date || ' 23:59:59')::timestamp; --in_date is input date from html page

您可以参考datetime in postgres了解更多详情和时间戳操作。

希望它有所帮助。