首页 > 解决方案 > 从 oracle 中的星期几号中检索日期名称

问题描述

我有一个字符串表示星期几(即 1、2、3、4、5、6 和 7)作为表中的一个字段。从这些我想在不使用 case 语句的情况下使用 oracle SQL 输出日期名称(如星期一、星期二等)。有人有想法吗?

标签: sqloracle

解决方案


我认为case可能是最简单的解决方案:

select (case dow when '1' then 'Monday' when '2' then 'Tuesday' when '3' then 'Wednesday'
                 when '4' then 'Thursday' when '5' then 'Friday' when '6' then 'Saturday'
                 when '7' then 'Sunday'
        end)

这可能不像转换为日期那么花哨,但是您可以准确地获得所需的字符串,而无需摆弄日期算术。

如果您想要日期算术,请使用trunc()

select to_char(trunc(sysdate, 'IW') + dow - 1, 'Dy')

注意:这会产生日期缩写。'Day'如果您想要完整的工作日名称,请使用。

这会将当前日期截断为从星期一开始的 ISO 周的开始。


推荐阅读