如何使用 Presto 解析月-年字符串

How to parse month-year string using Presto

我有一个包含月-年字符串的列,我想将其转换为表示月和年组合的第一天的实际日期。例如

+----------+------------+
| Original | Desired    |
+----------+------------+
| Aug-19   | 08/01/2019 |
+----------+------------+
| Sep-20   | 09/01/2020 |
+----------+------------+
| May-22   | 05/01/2022 |
+----------+------------+

我尝试使用 split_part 拆分 Month-Year 字符串,但是当我尝试将 Month 作为参数进入 date_parse 它会引发输入错误 (INVALID_FUNCTION_ARGUMENT)。我可以将 Month-Year 分解成字符串,然后重新组合,对 01 进行硬编码,但是问题似乎是 Presto 无法将三个字母的月份解析为实际的月份.我还想尽可能避免使用 12 行 CASE WHEN 语句来解析月份。

我不确定年份是从哪里来的,但查询将是这样的:

select date_format(date_parse('May-22', '%b-%d'), '%m/%d/%Y')

https://trino.io/docs/current/functions/datetime.html?mysql-date-functions