select TO_CHAR(to_date(sysdate, 'DD-MON-YYYY'), 'DAY') FROM DUAL;
当我运行此查询时,输出为:SUNDAY。但我们今天知道的是星期二(1-1-2013)。 和
然后将查询更改为
select TO_CHAR(to_date('01-JAN-2013', 'DD-MON-YYYY'), 'DAY') FROM DUAL;
回答是:星期二。
然后将查询更改为
select TO_CHAR(to_date(sysdate+1, 'DD-MON-YYYY'), 'DAY') FROM DUAL;
答案是:星期一。
当我使用sysdate时为什么显示SUNDAY作为输出?
我是oracle db的新手。请帮帮我。
答案 0 :(得分:5)
使用它:
select TO_CHAR(sysdate, 'DAY') FROM DUAL;
你正在使用这个:
to_date(sysdate, 'DD-MON-YYYY')
给你的日期= 1/1 / 0013这是星期日
答案 1 :(得分:2)
请参阅sysdate here的文档。 Sysdate已经是日期数据类型。
您的示例查询不合适,因为to_date
函数将第一个参数视为字符串而不是date
。
尝试以下简单查询:
select TO_CHAR(sysdate, 'DAY') FROM DUAL;
这应该返回TUESDAY
作为输出。
答案 2 :(得分:2)
To_date
用于将strin转换为日期。由于sysdate
已经是日期,因此不得添加添加to_date。