WHERE to_date(smz_loanservicing.as_of_date) = last_day(add_months(current_date, -1))
上述数据仅在贷款服务日发生在当月最后一天时提供。
上个月(2020年5月31日)这个月的最后一天是星期天。
有没有办法得到一个月的第一天,说如果这个特定的日期发生在一个月的第一天和最后一天之间,显示日期?基本上周日没有活动,所以数据丢失了。我试过了
to_date(smz_loanservicing.as_of_date)
between first_day(add_month(current_date,-1))
and last_day(add_months(current_date, -1))`
但是我得到语法错误。
2条答案
按热度按时间ojsjcaue1#
您似乎想检查日期列是否属于当前月份。
您使用的语法可以在oracle中使用,因此让我假设这就是您正在运行的数据库。我也假设
as_of_date
属于数据类型date
(或timestamp
).你的要求应该简单到:
实际上,您的语法也可以在snowflake中工作——上面的代码也可以。
注:如果
as_of_date
实际上是一个字符串,那么你需要to_date()
转换它。dddzy1tm2#
你可以把日期截短为月份,这样你就不需要知道第一天或最后一天了。