-1

我有一个正确转换的日期列,我想从中创建一个新列,即该月最后一天的日期。

例子:

current_datefield         end_of_month_date
2019-03-01                 2019-03-31   
2020-01-29                 2020-01-31

我不知道如何在dremio中做到这一点,我试过了EXTRACT,Date_PART

没有解决方案有效。先感谢您。

4

3 回答 3

1

由于 Dremio 是专有的,而且我们不在我工作的地方运行它,所以我无法为您测试特定代码,但我可以解释这种方法。我将把确切的语法留给你。

从广义上讲,解决方案是使用您必须计算下个月第一天的日期值,然后减去一天。这是因为每个月都有第一天,每个 SQL 引擎在从第一个减去一个时都会得到正确的 EOM 日期。在大多数系统中,有几种方法可以做到这一点。

那种“蛮力”的方法是获取您当前的日期current_datefield,然后EXTRACT是年份和月份。在月份中添加一个。使用这些值和硬编码01来“构建”下个月的第一天。那里可能会TO_DATE涉及到一个或一些此类。

现在只需将该值包装在一个DATE_ADD函数中以减去一个。

于 2020-02-14T18:06:16.100 回答
1

函数“LAST_DAY”对我有用。

像这样使用:

LAST_DAY(date_field)
于 2020-02-24T14:15:05.820 回答
0

如果你是 SQL Server,有一个函数叫做 EOMONTH。使用 EOMONTH 函数,您可以为您的需求编写查询。查看此 youtube 视频,为您的要求提供解决方案: https ://youtu.be/QsQDHux1C4A

于 2020-02-14T19:26:43.453 回答