PostgreSQL条件,其中日期>&引用;“每月第一天”;
不起作用。如何实现wherePostgreSQL条件,其中日期>&引用;“每月第一天”;,sql,postgresql,date,Sql,Postgresql,Date,不起作用。如何实现wheredate>“本月的第一天”您的my\u时间戳字段的类型是什么 对于datetime它可以正常工作: WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00') 如果my_timestamp确实属于timestamp、timestamp WITH timezone、timestamp WITH timezone或DATE类型,则您只需: select
date
>“本月的第一天”您的my\u时间戳
字段的类型是什么
对于datetime
它可以正常工作:
WHERE my_timestamp > to_char(date_trunc('month', CURRENT_DATE),'YYYY-MM-DD 00:00:00')
如果
my_timestamp
确实属于timestamp
、timestamp WITH timezone
、timestamp WITH timezone
或DATE
类型,则您只需:
select * from my_table where my_table.date > date_trunc('month', current_date);
没别的了。如果my_timestamp
是一种文本类型,而这正是您使用to_char()
的原因,那么它是完全错误的。因为一个字符串比另一个字符串大是什么意思?当然,字符串比较不能在这些字符串中定义按日期排序的顺序
更新(感谢您的建议):
如果
my_timestamp
是字符串,则需要将其转换为timestamp
rahter,而不是将CURRENT_DATE
转换为字符串(请记住使用my_timestamp
的时间格式)
为什么要将
时间戳
转换为varchar
,以便将其与时间戳
进行比较?您可能应该提到在my_timestamp
是字符串类型的情况下该怎么做(即调用的一些变体以_timestamp
)。
WHERE my_timestamp > DATE_TRUNC('month', CURRENT_DATE)
WHERE to_timestamp(my_timestamp,'YYYY-MM-DD HH24:MI:SS') > DATE_TRUNC('month', CURRENT_DATE)