我有一个正确转换的日期列,我想从该月的最后一天的日期创建一个新列。
例:
current_datefield end_of_month_date
2019-03-01 2019-03-31
2020-01-29 2020-01-31
我不知道如何在 dremio 中做到这一点,我已经尝试过EXTRACT,Date_PART
没有一个解决方案有效。提前谢谢你。
函数"LAST_DAY"对我有用。
像这样使用:
LAST_DAY(date_field)
由于 Dremio 是专有的,我们不在我工作的地方运行它,所以我无法为您测试特定代码,但我可以解释这种方法。我会把确切的语法留给你。
从广义上讲,解决方案是使用您必须计算下个月的第一天的日期值,然后减去一天。这是有效的,因为每个月都有一个月的第一天,并且每个SQL引擎在从第一个引擎中减去一个时都会获得正确的EOM日期。在大多数系统中,有几种方法可以做到这一点。
这种"蛮力"方法是将您当前的日期current_datefield
,然后EXTRACT
年份和月份。向月份添加一个。使用这些值和硬编码01
来"构建"下个月的第一天。那里可能会涉及一个TO_DATE
或一些类似的问题。
现在只需将该值包装在DATE_ADD
函数中即可减去一个。
如果你是SQL Server,有一个名为EOMONTH的函数。 使用 EOMONTH 函数,您可以根据自己的要求编写查询。 查看此YouTube视频,为您的要求提供解决方案: https://youtu.be/QsQDHux1C4A