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;
在table1
中,start_date字段值包含14-Apr-12 12:00:00 AM
的日期,start_time_hour
的值为hour
,start_time_minutes
的值为{{} 1}},minutes
的值为start_time_am_pm
。我想将这些列合并为一个字符串。我将转换为AM or PM
之类的日期格式。但它会引发错误to_date('14-04-12 05:08 PM','DD-MM-YYYY HH:MI PM')
。这有什么问题..任何帮助我如何根据我的上述要求转换为日期格式。
答案 0 :(得分:0)
Select to_char(schedule.start_date, 'DD-MM-YYYY HH:MI AM')
from table1 schedule;
如果schedule.start_date在00:00被截断,并且你在start_time_hour和start_time_minutes列中有时间信息(设计不好 - 你不需要这些列,DATE类型本身有时间。)你可以这样做:
Select
to_char(schedule.start_date + start_time_hour/24 + start_time_minutes/1440
,'DD-MM-YYYY HH:MI AM')
from table1 schedule;
答案 1 :(得分:0)
好吧,我认为您的问题[更不用说其他评论]是您将MONTH(字符串)放入MM(数字)。 即EXTRACT(来自schedule.start_date的月份),因此“MONTH”是列中的第一个日期项目,但格式掩码“DD”是第一个项目。