我正在寻找一种替换PostgreSQL中的EOMONTH的方法。我有一个带日期列的数据库。我有一个脚本要在本月的第一天运行,该脚本将仅选择介于前几个月的第一天和最后一天之间的行。
我需要这样的东西:
SELECT *
FROM database
WHERE dateCol BETWEEN SYMMETRIC EOMONTH(GETDATE(),-2)+1 AND EOMONTH(GETDATE(),-1);
我对SQL还是很陌生,所以如果有什么不对的话,请告诉我。谢谢!
我正在寻找一种替换PostgreSQL中的EOMONTH的方法。我有一个带日期列的数据库。我有一个脚本要在本月的第一天运行,该脚本将仅选择介于前几个月的第一天和最后一天之间的行。
我需要这样的东西:
SELECT *
FROM database
WHERE dateCol BETWEEN SYMMETRIC EOMONTH(GETDATE(),-2)+1 AND EOMONTH(GETDATE(),-1);
我对SQL还是很陌生,所以如果有什么不对的话,请告诉我。谢谢!
此SQL Server表达式:
EOMONTH(GETDATE(),-2)+1
表示:M-2月的最后一天(我们在11月,所以这是9月30日)
在postgres中表达这种情况的一种方法是:
date_trunc('month',current_date) - interval '1 month' - interval '1 day'
这意味着:将当前日期截断为该月的第一天,然后再返回1个月零一天。