每月的第一天

ddarikpa  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(497)
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))`

但是我得到语法错误。

ojsjcaue

ojsjcaue1#

您似乎想检查日期列是否属于当前月份。
您使用的语法可以在oracle中使用,因此让我假设这就是您正在运行的数据库。我也假设 as_of_date 属于数据类型 date (或 timestamp ).
你的要求应该简单到:

where
    as_of_date >= trunc(current_date, 'mm') 
    and as_of_date < add_months(trunc(current_date, 'mm'), 1)

实际上,您的语法也可以在snowflake中工作——上面的代码也可以。
注:如果 as_of_date 实际上是一个字符串,那么你需要 to_date() 转换它。

dddzy1tm

dddzy1tm2#

你可以把日期截短为月份,这样你就不需要知道第一天或最后一天了。

where trunc(as_of_date, ‘MM’) = trunc(current_date, ‘MM’)

相关问题