将数字转换为日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;