将数字转换为日oracle plsql

将数字转换为日oracle plsql,sql,oracle,Sql,Oracle,是否可以将数字转换为一周中的一天 我试过了 to_date(1,'DAY') to_date('1','DAY') 没有运气。讽刺的是,这是一个老式的decode()非常有用的地方: select decode(<your number>, 1, 'Mon', 2, 'Tue', . . . , 7, 'Sun') 选择解码(,1,'Mon',2,'Tue',7,'Sun') 这将问题解释为返回一周中的日期作为一周中的天数。诚然,代码确实表明您确实想

是否可以将数字转换为一周中的一天

我试过了

       to_date(1,'DAY')
       to_date('1','DAY')

没有运气。

讽刺的是,这是一个老式的
decode()
非常有用的地方:

select decode(<your number>, 1, 'Mon', 2, 'Tue', . . . , 7, 'Sun')
选择解码(,1,'Mon',2,'Tue',7,'Sun')
这将问题解释为返回一周中的日期作为一周中的天数。诚然,代码确实表明您确实想要约会,但这没有意义。

您可以尝试以下方法:

select level as number, 
    to_char(level+trunc(sysdate,'D'),'Day') as day
from dual
connect by level <= 7;

NUMBER DAY                                
--- ------------------------------------
  1 Monday                               
  2 Tuesday                              
  3 Wednesday                            
  4 Thursday                             
  5 Friday                               
  6 Saturday                             
  7 Sunday 
选择级别作为编号,
将字符(level+trunc(sysdate,'D'),'Day')作为日期
来自双重

按级别连接您可以执行以下操作将a数字转换为一周中的一天。请记住,您得到的结果将取决于您的NLS设置(例如,您的一周可能从周日开始,也可能从周一开始,等等):

上述内容将数字转换为一周中的一天名称(例如,
Sunday
)。如果您想要一个日期,只需使用:

SELECT NEXT_DAY(sysdate, 1) FROM dual;

这将返回一周中该天的下一个事件(例如,在我的系统上,它返回下一个星期日)。

您需要什么输入?什么输出?您希望它返回什么?当
to_char
日期
转换为一周中的某一天时,这取决于NLS设置,因为不同的人在不同的日子开始一周。您想要使用相同的NLS设置还是想要固定的返回值?好的,我将进一步解释我的问题,我有一个表_列,其中存储了数字,特别是从1到7的数字。我想将这些数字转换成字符串,如“星期一”,以便在函数next_day中使用它们,如->next_day(sysdate,'MONDAY')。@darkpirate,您可以使用
next_day()
和数字-您不需要星期几的名称。谢谢您,大卫,我可能在函数描述中忽略了这一点!你说得简洁明了。多谢各位much@darkpirate实际上,我认为这种使用
NEXT_DAY()
的做法是没有记录的。但它确实有效。
SELECT NEXT_DAY(sysdate, 1) FROM dual;