【发布时间】:2019-01-27 17:22:12
【问题描述】:
我正在使用连接到 apache Drill sql 的 dbeaver,试图获取星期几。
例如对于'1/27/2019',星期几是1,将星期日视为一周的第一天。
示例 2:'1/28/2019',输出:2
【问题讨论】:
标签: sql apache-drill datepart dbeaver sql-date-functions
我正在使用连接到 apache Drill sql 的 dbeaver,试图获取星期几。
例如对于'1/27/2019',星期几是1,将星期日视为一周的第一天。
示例 2:'1/28/2019',输出:2
【问题讨论】:
标签: sql apache-drill datepart dbeaver sql-date-functions
在 Apache Drill SQL 中,您应该可以使用the TO_CHAR() data type conversion method。格式说明符'e' 应该是您需要的:
TO_CHAR(my_date_col, 'e')
如果您的日期存储为字符串,您需要先将它们转换为日期,例如使用TO_DATE:
TO_CHAR(TO_DATE(my_string_col, , 'MM/dd/yyyy'), 'e')
【讨论】:
CASE WHEN TO_CHAR(my_date_col, 'e') = 1 THEN '7' ELSE TO_CHAR( TO_NUMBER( TO_CHAR(my_date_col, 'e'), '#' ) + 1, '#' ) END
TO_CHAR(date_col, 'e') 将返回数字。例如,如果是星期一的工作日,则返回 1。以此类推...
TO_CHAR(date_col, 'E') 将返回字符。例如,如果是星期一的工作日,它将返回星期一。等等……
确保您的日期列是日期格式,如果不是首先使用 TO_DATE() 将其转换为日期格式,然后执行上述步骤。
【讨论】: