sql - 如何在dremio中计算每行月的最后一天?
问题描述
我有一个正确转换的日期列,我想从中创建一个新列,即该月最后一天的日期。
例子:
current_datefield end_of_month_date
2019-03-01 2019-03-31
2020-01-29 2020-01-31
我不知道如何在dremio中做到这一点,我试过了EXTRACT,Date_PART
没有解决方案有效。先感谢您。
解决方案
由于 Dremio 是专有的,而且我们不在我工作的地方运行它,所以我无法为您测试特定代码,但我可以解释这种方法。我将把确切的语法留给你。
从广义上讲,解决方案是使用您必须计算下个月第一天的日期值,然后减去一天。这是因为每个月都有第一天,每个 SQL 引擎在从第一个减去一个时都会得到正确的 EOM 日期。在大多数系统中,有几种方法可以做到这一点。
那种“蛮力”的方法是获取您当前的日期current_datefield
,然后EXTRACT
是年份和月份。在月份中添加一个。使用这些值和硬编码01
来“构建”下个月的第一天。那里可能会TO_DATE
涉及到一个或一些此类。
现在只需将该值包装在一个DATE_ADD
函数中以减去一个。
推荐阅读
- php - 通过终端启动多个同时连续运行的脚本,这些脚本在终端会话结束后继续运行
- shell - 如何遍历对象的 shell 数组并使用 jq 从 JSON 文件中删除它们?
- node.js - Node JS 从数组中删除特定对象(猫鼬)
- electron-builder - 电子生成器打包附加文件-打包后找不到Shell脚本
- angular - 如何在 Ionic 上设置传单瓷砖?
- xamarin - 无法从 typeref 解析 w/令牌 01000060(在程序集'Xamarin.Forms.Core,Version=2.0.0.0,Token=null 中期望类'Xamarin.Forms.FlyoutPage'
- google-chrome - 如何以正确的格式将请求标头传递给 requests.get(url, headers = headers)?
- vaadin - Vaadin:大约 80 分钟不活动后 UI 分离异常
- huggingface-transformers - 要求截断到 max_length 但没有提供最大长度,并且模型没有预定义的最大长度。默认不截断
- python - 检索对象的虚线路径?