如何编码一个动态的NetSuite日期范围,该日期范围从一个月的第一天(4个月前)开始,到上个月的最后一天结束?

时间:2019-01-15 21:27:59

标签: sql netsuite

我正在NetSuite交易搜索的条件中创建一个公式(数字)字段。我的目标是查看4个月前(第一天)到上个月(最后一天)之间的{transdate}交易。动态日期范围很重要。

示例:如果今天的日期是1/15/19,则条件应过滤掉除9/1/18到12/31/18之间的所有交易。如果我在19年7月1日运行搜索,则范围应为3/1/19至6/31/19。

这是失败的Formula(数字)代码:

  CASE WHEN {trandate} BETWEEN
  TO_DATE(TRUNC((ADD_MONTHS({today},-4)),’MONTH’)) AND
  TO_DATE(LAST_DAY(TRUNC({today},'MONTH')-1)) THEN 1 ELSE 0 END

导致以下错误:
“您的公式中有一个错误。它可能解析为错误的数据类型,使用未知函数或语法错误。请返回,更正公式,然后重新提交。”

我最能解决问题的是此迭代:

 CASE WHEN {trandate} BETWEEN 
 TO_DATE(ADD_MONTHS({today},-4)) AND
 TO_DATE(LAST_DAY(TRUNC({today},'MONTH')-1)) THEN 1 ELSE 0 END

问题在于第一个to_date代码没有给我每月的第一天。我最终的射程为9/15/18至12/31/18。我以为添加TRUNC将使我回到本月的第一天。我要去哪里错了?

1 个答案:

答案 0 :(得分:2)

你很近。我认为这对您有用。第一个日期可以追溯到5个月并增加一天,第二个日期可以追溯到上个月的最后一天。

CASE WHEN {trandate} BETWEEN
LAST_DAY(ADD_MONTHS({today},-5))+1 AND
LAST_DAY(ADD_MONTHS({today},-1)) THEN 1 ELSE 0 END