Postgres的BETWEEN语句中的EOMONTH()替代

我正在寻找一种替换PostgreSQL中的EOMONTH的方法。我有一个带日期列的数据库。我有一个脚本要在本月的第一天运行,该脚本将仅选择介于前几个月的第一天和最后一天之间的行。

我需要这样的东西:

SELECT * 
FROM database 
WHERE dateCol BETWEEN SYMMETRIC EOMONTH(GETDATE(),-2)+1 AND EOMONTH(GETDATE(),-1);

我对SQL还是很陌生,所以如果有什么不对的话,请告诉我。谢谢!

zx986410 回答:Postgres的BETWEEN语句中的EOMONTH()替代

此SQL Server表达式:

EOMONTH(GETDATE(),-2)+1

表示:M-2月的最后一天(我们在11月,所以这是9月30日)

在postgres中表达这种情况的一种方法是:

date_trunc('month',current_date) - interval '1 month' - interval '1 day'

这意味着:将当前日期截断为该月的第一天,然后再返回1个月零一天。

Demo on DB Fiddle

本文链接:https://www.f2er.com/3163537.html

大家都在问