Oracle中如何提取日期列对应的星期名称?
解决方案
要将表中字符串格式的日期转换为星期名称,你需要先把字符串类型的日期值转换为Oracle的DATE类型,再通过TO_CHAR函数提取星期名称。具体操作如下:
1. 字符串转日期:使用TO_DATE函数
你的日期字符串格式是'YY-MMM-DD',对应Oracle的日期格式模型为'YY-MON-DD'(MON用于匹配三位月份缩写)。通过TO_DATE函数可以将整列的字符串统一转换为DATE类型:
TO_DATE(my_current_date_value, 'YY-MON-DD')
2. 日期转星期名称:使用TO_CHAR函数
将转换后的DATE类型值传入TO_CHAR,指定格式模型'FMDay'(FM用于去除星期名称尾部的默认空格,输出如Wednesday而非Wednesday ),即可得到目标星期名称。
完整SQL语句
针对你的Table_1表,最终的查询语句为:
SELECT TO_CHAR(TO_DATE(my_current_date_value, 'YY-MON-DD'), 'FMDay') AS day_name FROM Table_1;
测试示例数据
针对你提供的示例数据:
| my_current_date_value |
|---|
| 20-MAR-22 |
| 20-MAR-31 |
| 20-APR-29 |
执行上述语句后,输出结果如下:
| day_name |
|---|
| Wednesday |
| Friday |
| Saturday |
完全符合你的期望输出。
内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles
相关产品推荐
相关产品推荐

