sql - 从 oracle 中的星期几号中检索日期名称
问题描述
我有一个字符串表示星期几(即 1、2、3、4、5、6 和 7)作为表中的一个字段。从这些我想在不使用 case 语句的情况下使用 oracle SQL 输出日期名称(如星期一、星期二等)。有人有想法吗?
解决方案
我认为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 周的开始。
推荐阅读
- sql - 如何解决错误“无法对包含聚合或子查询的表达式执行聚合函数”
- python - 数据库中缺少字段但存在于 Django 的模型中
- javascript - 如何将 SharePoint 列表中的值显示到网页
- javascript - 为什么在尝试将日期时间类型转换为日期时出现错误“未定义时刻”?
- python - 如何从当前项目向 scrapyd 添加新服务
- wso2 - WSO2 自定义中介设置信封的值
- shadow-dom - 当阴影设置为 true 时,如何仅在 stencilJS 中获取被点击的元素
- android - 应用程序在 java.net.SocketTimeoutException 上崩溃:超时(Kotlin、Retrofit)
- python - 由于 wx 问题,无法使用 view_cube 命令
- json - 无法在 swift 4 中发出发布请求