问答 查看内容
返回列表

麻烦问下截取日期范围的最后一天的函数是什么?

343 2
发表于 2024-8-30 09:33:41 | 查看全部 阅读模式
问题1:麻烦问下截取日期范围的最后一天的函数是什么?举例,我日期范围选取本月到昨日,我要得到31 这个数字应用场景,是在仪表板里面,计算当月时间进度,如下图:

企业微信截图_17249211972357.png


问题2:我们技术人员给我推荐的是:DATEDIFF('day', DATE_TRUNC('month',yesterday()) , DATE_TRUNC('month',yesterday()) +INTERVAL '1 month' ) 但我使用的时候报错,yesterday()是不合法的,是我的使用问题吗,如下图,有更简便的方法吗?
企业微信20240830-092905@2x.png

问题3:同上方法,我查看观远帮助中心文档datediff的使用场景是计算时间差,这个没有问题,但是帮助中心只利用到了两个日期,但是这个方法有使用到三个日期好像,麻烦帮忙解答一下
企业微信20240830-093206@2x.png

评论2

观小凡Lv.1 发表于 2024-8-30 14:18:26 | 查看全部
问题1:根据您的截图判断,你想要的其实是昨天所在月的天数,即31这个数字。如果是非直连数据集,建议您试试
  1. DAYOFMONTH(LAST_DAY(CURRENT_DATE()- interval 1 day))
复制代码

CURRENT_DATE()- interval 1 day 代表昨天;LAST_DAY() 用来取日期所在月最后一天日期;DAYOFMONTH() 代表按月取天(1~31)
问题2:您的技术支持推荐的函数并非Spark函数,不同数据库SQL函数并不通用,不建议您直接照搬,需要自行查找您使用的数据库对应函数。但是您可以借鉴这个思路:计算本月1号和下个月1号的天数差,虽然和我推荐的函数思路不同,但计算结果应该是一致的。
好!!!楼主Lv.1 发表于 2024-8-30 15:58:17 | 查看全部
观小凡 发表于 2024-8-30 14:18
问题1:根据您的截图判断,你想要的其实是昨天所在月的天数,即31这个数字。如果是非直连数据集,建议您试 ...

抱歉,我这个使用的是clickhouse库,所以您这个函数的语法在我这边不生效:’(
企业微信截图_17250021213064.png

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2024 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表