【发布时间】:2012-03-30 19:20:13
【问题描述】:
我有一个日期文本字段,尽管有时它也有时间部分。例如:
"23/1/1999"
"25/2/2003 05:18:00"
现在,我只想查询它们并仅按日期组件排序。我的尝试
TO_DATE(
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
,'MON-YYYY')
上述在外部 TO_DATE 失败(ORA-01843 无效月份。)
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
上述方法有效,但我只剩下一个字符串,而不是日期。
-------- 使用已接受答案的解决方案
随便用
EXTRACT(MONTH FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
EXTRACT(YEAR FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
如答案所述,您可以在 ORDER BY 和 SELECT 中交换您使用它的顺序。
需要对月份进行一些数字格式和一些连接,但这非常有效。
【问题讨论】: