4
select TO_CHAR(to_date(sysdate, 'DD-MON-YYYY'), 'DAY') FROM DUAL; 

当我运行这个查询时,输出是:SUNDAY。但我们知道今天是星期二(2013 年 1 月 1 日)。和

然后将查询更改为

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 数据库的新手。请帮我。

4

3 回答 3

6

用这个:

 select TO_CHAR(sysdate, 'DAY') FROM DUAL;

你正在使用这个:

 to_date(sysdate, 'DD-MON-YYYY') 

这是给你 date=1/1/0013 星期天

于 2013-01-01T05:44:30.197 回答
2

请参阅此处的 sysdate 文档。Sysdate 已经是一个日期数据类型。

您的示例查询不合适,因为to_date函数将第一个参数作为 String not date

试试下面的简单查询:

     select TO_CHAR(sysdate, 'DAY') FROM DUAL; 

这应该TUESDAY作为输出返回。

于 2013-01-01T05:30:30.567 回答
2

To_date用于将字符串转换为日期。由于sysdate已经是日期,因此不得添加 add to_date。

于 2016-02-24T08:37:34.247 回答