2015-11-03 25 views

回答

3

如果my_timestamp是真的,那麼你唯一需要的是TIMESTAMP類型,TIMESTAMP WITH TIME ZONETIMESTAMP WITHOUT TIME ZONEDATE

WHERE my_timestamp > DATE_TRUNC('month', CURRENT_DATE) 

,僅此而已。如果my_timestamp是文本類型之一,並且這是您使用to_char()的原因,那麼它是完全錯誤的。因爲什麼意思是一個字符串比另一個更大?確保字符串比較不能按這些字符串中的日期定義順序。

更新(感謝jpmc26的建議):

如果my_timestamp是一個字符串,那麼你需要將它轉換爲TIMESTAMP rahter高於鑄態CURRENT_DATE串(記得用的my_timestamp時間格式)。

WHERE to_timestamp(my_timestamp,'YYYY-MM-DD HH24:MI:SS') > DATE_TRUNC('month', CURRENT_DATE) 
+1

你應該提到在my_timestamp是一個字符串類型的情況下(即調用'to_timestamp'的一些變體)。 – jpmc26

+0

@ jpmc26謝謝,好主意! –

0

my_timestamp是什麼類型的字段?

對於datetime正常工作:

select * from my_table where my_table.date > date_trunc('month', current_date); 
相關問題