以下是我在postgres中的查询
select dns_time,update_time from dns_lookup where update_time=current_date;
此处update_time的时间戳类型为时区。 我也试过这个。
select dns_time,update_time from dns_lookup where update_time like current_date;
然后也没有结果。 我有current_date值的记录。但它没有显示任何记录。如何将时间戳与时区值与current_date.please进行比较帮助我 谢谢。
答案 0 :(得分:5)
首先:日期或时间戳列上的LIKE
不会使任何感觉。
timestamp
包含时间部分,因此与普通date
的比较将无效。您需要通过将时间戳转换为日期来从时间戳中删除时间:
where cast(update_time as date) = current_date;
请注意,这将使update_time
上的索引的使用无效。如果这是一个问题,您可以在该表达式上创建基于函数的索引。
答案 1 :(得分:1)
您可能尝试将timestamp
字段与Date
字段进行比较。
尝试将时间戳转换为日期
select dns_time,update_time from dns_lookup where update_time::Date=current_date;
希望这会有所帮助。