mysql数据库语法改造成dm数据库DATE_SUB

给了一个任务就是把一个项目用dm数据库正常跑起来,真的难呀,项目原本是使用的mysql、

问题寻找

在这里插入图片描述
dm数据库保存,我看mysql跑的挺好的,然后开始找原因。
其中还没有看懂这两个函数,特意搜了搜
LAST_DAY 取最后一天
DATE_SUB() 函数从日期减去指定的时间间隔。
发现原来是减掉日期的函数不支持。

问题处理

select *
FROM dwd.base_organizational_all_versions og
         INNER JOIN
     dwd.DWD_PER_ALL_ASSIGNMENTS_F ass on og.organization_id = ass.ORGANIZATION_ID
where LAST_DAY(DATE_SUB(CONCAT('202309', '01'), INTERVAL 1 MONTH)) BETWEEN ass.EFFECTIVE_START_DATE AND ass.effective_end_date
  AND LAST_DAY(DATE_SUB(CONCAT('202309', '01'), INTERVAL 1 MONTH)) BETWEEN og.date_from and og.date_to

这个意思,'20230901’这个日期的上个月的最后一天
去查dm数据库的函数文档
在这里插入图片描述
不过我不是很理解为啥要制定月的1号的上个月 的最后一天,为啥这个逻辑不可以转换成制定月的1号的前一天,不就是上个月的最后一天了么,感觉可能是之前说的不是1号导致的吧
在这里插入图片描述

select *
FROM dwd.base_organizational_all_versions og
         INNER JOIN
     dwd.DWD_PER_ALL_ASSIGNMENTS_F ass on og.organization_id = ass.ORGANIZATION_ID
where LAST_DAY(add_days(CONCAT('202309','01'),-1)) BETWEEN ass.EFFECTIVE_START_DATE AND ass.effective_end_date
  AND LAST_DAY(add_days(CONCAT('202309','01'),-1)) BETWEEN og.date_from and og.date_to
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又是重名了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值