将数字转换为日oracle plsql

时间:2015-03-15 20:02:39

标签: sql oracle

是否可以将数字转换为星期几?

我已经尝试了

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

没有运气。

3 个答案:

答案 0 :(得分:5)

您可以执行以下操作将数字转换为星期几。请记住,您获得的结果将取决于您的NLS设置(例如,您的星期可能在星期日开始,或者可能在星期一开始,等等):

SELECT TO_CHAR(NEXT_DAY(sysdate, 1), 'Day') FROM dual;

上述内容会将数字转换为星期几的名称(例如Sunday)。如果您想要约会,只需使用:

SELECT NEXT_DAY(sysdate, 1) FROM dual;

这将返回一周中那天的下一次出现(在我的系统上,例如,它返回下一个星期日)。

答案 1 :(得分:1)

具有讽刺意味的是,这是老式的decode()很有用的地方:

select decode(<your number>, 1, 'Mon', 2, 'Tue', . . . , 7, 'Sun')

这是将问题解释为返回星期几的星期几。不可否认,代码确实建议你实际上想要一个日期,但这没有意义。

答案 2 :(得分:0)

你可以试试这个:

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