我有一个查询,我只想选择一天的记录。比如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)并返回日期时间?
答案 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了解更多详情和时间戳操作。
希望它有所帮助。