[英]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
的類型為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
字段的類型是什么?
對於datetime
它工作正常:
select * from my_table where my_table.date > date_trunc('month', current_date);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.