使用current_date的postgres查询无法正常工作

时间:2013-06-07 07:21:39

标签: postgresql

以下是我在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进行比较帮助我 谢谢。

2 个答案:

答案 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;

希望这会有所帮助。