WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00')
不起作用。我如何實現date
>「本月的第一天」?PostgreSQL條件,其中日期>「當月的第一天」
WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00')
不起作用。我如何實現date
>「本月的第一天」?PostgreSQL條件,其中日期>「當月的第一天」
如果my_timestamp
是真的,那麼你唯一需要的是TIMESTAMP
類型,TIMESTAMP WITH TIME ZONE
,TIMESTAMP WITHOUT TIME ZONE
或DATE
:
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)
你應該提到在my_timestamp是一個字符串類型的情況下(即調用'to_timestamp'的一些變體)。 – jpmc26
@ jpmc26謝謝,好主意! –
my_timestamp
是什麼類型的字段?
對於datetime
正常工作:
select * from my_table where my_table.date > date_trunc('month', current_date);
爲什麼將'timestamp'轉換爲'varchar'以便將它與'timestamp'進行比較? –