Oracle中的截止日期转换问题?

Oracle中的截止日期转换问题?,oracle,Oracle,在表1中,“开始时间”字段值包含的日期为12年4月14日12:00:00 AM,start\u time\u hour的值为hour,start\u time\u minutes的值为minutes,start\u time\u AM\u pm的值为AM或pm。我想把这些列合并成一个字符串。我将转换成日期格式,如到_date('14-04-12 05:08 PM','DD-MM-YYYY HH:MI PM')。但是它抛出了错误ORA-01858:在需要数字的地方发现了一个非数字字符。这件事有什么

表1
中,“开始时间”字段值包含的日期为
12年4月14日12:00:00 AM
start\u time\u hour
的值为
hour
start\u time\u minutes
的值为
minutes
start\u time\u AM\u pm
的值为
AM或pm
。我想把这些列合并成一个字符串。我将转换成日期格式,如
到_date('14-04-12 05:08 PM','DD-MM-YYYY HH:MI PM')
。但是它抛出了错误ORA-01858:在需要数字的地方发现了一个非数字字符。这件事有什么问题。。有没有人能帮我把上面的要求转换成日期格式

 SELECT TO_DATE (   TO_CHAR (EXTRACT (MONTH FROM schedule.start_date))
                || '-'
                || TO_CHAR (EXTRACT (DAY FROM schedule.start_date))
                || '-'
                || TO_CHAR (EXTRACT (YEAR FROM schedule.start_date))
                || ' '
                || TO_CHAR (schedule.start_time_hour)
                || ':'
                || TO_CHAR (schedule.start_time_minutes)
                || schedule.start_time_am_pm,
                'DD-MM-YYYY HH24:MI pm'
                )
   FROM table1 schedule;
如果schedule.start_date在00:00被截断,并且您在start_time_hour和start_time_minutes列中有时间信息(糟糕的设计-您不需要这些列,日期类型本身就有时间)。您可以这样做:

Select to_char(schedule.start_date,  'DD-MM-YYYY HH:MI AM') 
from table1 schedule;

好吧,我认为你的问题[更不用说其他评论]是你把月份(字符串)放进了MM(数字)。
i、 e.提取(从计划开始的月份。开始日期),因此“月”是列中的第一个日期项目,但格式掩码“DD”是第一个项目。

请诚实回答:您能阅读自己的问题吗?您已经有日期了!你为什么要改成约会?当您已经有此信息时,为什么要存储小时和分钟以及上午/下午?schedule.start\u date包含小时和分钟,或者在00:00被截断?
Select 
  to_char(schedule.start_date + start_time_hour/24 + start_time_minutes/1440
          ,'DD-MM-YYYY HH:MI AM') 
from table1 schedule;