sql - 在 oracle 查询中获取日期名称
问题描述
如何在以下示例中获取日期名称:
SELECT
day AS return,
day AS display,
'' AS day_name
FROM
(
WITH temp ( col ) AS (
SELECT
to_date(2, 'mm') --2 is February
FROM
dual
)
SELECT
to_number(to_char(col + level - 1, 'dd')) day
FROM
temp
CONNECT BY
level <= last_day(col) - col + 1
ORDER BY
day
)
解决方案
如何获取日期名称
采用:
TO_CHAR( day, 'fmDAY' )
(fm
格式模型将去除尾随空格,否则将输出,因为TO_CHAR( date_value, 'DAY' )
将用空格右填充日期名称,以便它们都具有与最长的日期名称相同的长度。)
所以:
SELECT EXTRACT( DAY FROM day ) AS return,
EXTRACT( DAY FROM day ) AS display,
TO_CHAR( day, 'fmDAY' ) AS day_name
FROM (
WITH temp ( col ) AS (
SELECT to_date(2, 'mm') --2 is February
FROM dual
)
SELECT col + level - 1 AS day
FROM temp
CONNECT BY level <= last_day(col) - col + 1
ORDER BY day
)
其中,输出:
返回 | 显示 | DAY_NAME -----: | ------: | :-------- 1 | 1 | 周一 2 | 2 | 周二 3 | 3 | 周三 4 | 4 | 周四 5 | 5 | 星期五 6 | 6 | 周六 7 | 7 | 星期日 8 | 8 | 周一 9 | 9 | 周二 10 | 10 | 周三 11 | 11 | 周四 12 | 12 | 星期五 13 | 13 | 周六 14 | 14 | 星期日 15 | 15 | 周一 16 | 16 | 周二 17 | 17 | 周三 18 | 18 | 周四 19 | 19 | 星期五 20 | 20 | 周六 21 | 21 | 星期日 22 | 22 | 周一 23 | 23 | 周二 24 | 24 | 周三 25 | 25 | 周四 26 | 26 | 星期五 27 | 27 | 周六 28 | 28 | 星期日
db<>在这里摆弄
推荐阅读
- typescript - 在画布中移动先前绘制的矩形
- excel - 如果其他单元格与特定值匹配,如何在公式中引用特定单元格
- laravel - Laravel Echo 未订阅私人频道
- javascript - 如何在命令文件夹中创建文件夹并使其在 discord.js v12 中工作
- react-native - 无法在 Expo 中渲染 3D 模型
- vba - 允许用户选择多个文件
- c++ - 使用 STL 在 C++ 中计算分区
- angular - 如何在不使用表单的情况下将输入字段设置为无效,以便底部轮廓根据条件显示为红色
- javascript - 如何在反应中预览多个图像?我可以预览一个但不能预览多个
- r - 逐列索引参考