我有字段REPORTDATE(DATETIME).
在sql Developer中,我可以看到它的格式
在sql Developer中,我可以看到它的格式
29.10.2013 17:08:08
我发现为了做一个DATE的选择,我需要执行这个:
SELECT TO_DATE (REPORTDATE,'DD.MON.YYYY') AS my_date FROM TABLE1
但它返回0RA-01843:不是有效月份
我希望结果只返回29.10.2013
解决方法
TO_DATE (REPORTDATE,‘DD.MON.YYYY’)
这毫无意义.您正在将日期再次转换为日期.您使用TO_DATE将字符串文字转换为DATE.
I want result to return only 29.10.2013
您可以使用TRUNC截断时间元素.如果要将此值用于DATE计算,可以直接使用它.
例如,
sql> select TRUNC(SYSDATE) dt FROM DUAL; DT --------- 12-MAR-15
要以特定格式显示,您可以使用TO_CHAR和正确的FORMAT MASK.
sql> SELECT to_char(SYSDATE,'DD.MM.YYYY') dt from dual; DT ---------- 12.03.2015 sql>