簡體   English   中英

PostgreSQL條件,日期>“月的第一天”

[英]PostgreSQL condition, where date > “first day of the month”

WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00') 

不起作用。 我如何實現某個date >“本月的第一天”?

如果my_timestamp的類型為TIMESTAMPTIMESTAMP 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)

my_timestamp字段的類型是什么?

對於datetime它工作正常:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM