WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00')
不起作用。如何实现date
> “这个月的第一天”?
答案 0 :(得分:3)
如果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)
答案 1 :(得分:0)
my_timestamp
字段的类型是什么?
对于datetime
,它可以正常工作:
select * from my_table where my_table.date > date_trunc('month', current_date);