如何仅获取那些满足时间戳的仅日期部分而不是时间的内容

时间:2019-07-02 12:56:20

标签: postgresql

问题在于时间戳类似于年月日时:分:秒,我的WHERE条件只需要关心年月日部分。

我尝试过DATE()的条件。我已经尝试过truncate()并且也只尝试了WHERE created_on = '2019-01-01'而没有任何结果显示。

我的表格列是:

id|event_status|created_on

created_on是时间戳字段。

[57014]错误:由于语句超时而取消了语句

没有任何结果显示。

2 个答案:

答案 0 :(得分:2)

您需要将时间戳转换为日期:

WHERE created_on::date = date '2019-01-01'` 

但是,这将无法使用created_on上的索引,这可能是超时的原因。

另一种可以利用created_on上的索引的方法是使用范围条件:

WHERE created_on >= date '2019-01-01' 
  and created_on < date '2019-01-02'

答案 1 :(得分:0)

您可以将timestamp转换为date。这会截断time部分

WHERE created_on::date = '2019-01-01'::date