我有一个正确转换的日期列,我想从中创建一个新列,即该月最后一天的日期。
例子:
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
函数中以减去一个。
函数“LAST_DAY”对我有用。
像这样使用:
LAST_DAY(date_field)
如果你是 SQL Server,有一个函数叫做 EOMONTH。使用 EOMONTH 函数,您可以为您的需求编写查询。查看此 youtube 视频,为您的要求提供解决方案: https ://youtu.be/QsQDHux1C4A