写一个查询,以“ YYYY-MM-DD”的格式显示计划ID和日期,并将列命名为FormattedDate
。按时间表ID升序显示记录。
select schedule_id, to_char(to_date(travel_date,'DD-MON-YY'),'YYYY-MM-DD')
as FormattedDate from schedule order by schedule_id;
这是我的代码。当我对此进行评估时,它仅通过了两个测试用例之一。我的输出符合预期,但我认为代码中有一些错误。
这是架构:
答案 0 :(得分:0)
DATE
已经是TO_DATE( date_string, format_model )
数据类型;不需要在其上使用DATE
,因为该函数期望将字符串作为第一个参数,并且您传递了NLS_DATE_FORMAT
,因此oracle必须应用隐式转换(使用select schedule_id,
to_char(
to_date(
TO_CHAR(
travel_date,
(SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT')
),
'DD-MON-YY'
),
'YYYY-MM-DD'
) as FormattedDate
from schedule
order by schedule_id;
会话参数作为格式模型),并且您的声明有效:
NLS_DATE_FORMAT
当DD-MON-YY
和select schedule_id,
to_char( travel_date, 'YYYY-MM-DD' ) as FormattedDate
from schedule
order by schedule_id;
格式模型不同时,这会产生问题。
相反,请执行以下操作:
select schedule_id,
to_char( travel_date, 'YYYY-MM-DD' ) as "FormattedDate"
from schedule
order by schedule_id;
如果该列需要使用正确的大小写,则使用带引号的标识符来强制区分大小写:
403 Forbidden
答案 1 :(得分:0)
Select schedule_id,to_char(travel_date,'yyyy-mm-dd')as formatted from schedule order by schedule id asc;
有效:)
答案 2 :(得分:0)
SELECT SCHEDULE_ID, to_char(travel_date, 'yyyy-mm-dd') as Formattedd FROM SCHEDULE ORDER BY SCHEDULE_ID;
工作正常