我正在查询以下 sql。请帮我。
select to_date(sysdate, 'DD MONTH YYYY') , to_date(sysdate, 'yyyy/mm/dd hh24:mi:ss')
from dual where
to_date(sysdate, 'DD MONTH YYYY') < to_date(sysdate, 'yyyy/mm/dd');
1) to_date(sysdate, 'DD MONTH YYYY') 这将给出没有时间的 Date 对象(可能时间是 00:00)。
我对么 ?如果不是,我将如何只获得没有时间的 Date 对象?
2) 从上面的查询看来 to_date(sysdate, 'yyyy/mm/dd') 大于 to_date(sysdate, 'DD MONTH YYYY')。为什么 ??
更新
1) 我在上面的 URL 中的目的是找出 to_date 函数只会返回日期(或连同时间),尽管格式 'DD MONTH YYYY' 没有提到时间字符(hh:mm..)。
2)从我得到的回复中,虽然我们没有提到时间字符,但 to_date 将始终返回带时间的日期。
3) 最后只得到 DATE 我们应该使用 trunc() / to_date(to_char(sysdate,'mm-dd-yyyy'),'mm-dd-yyyy')
检查以下
select to_char(trunc(sysdate), 'yyyy/mm/dd hh24:mi:ss'),
to_char(to_date(to_char(sysdate, 'yyyy-MM-dd'),'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss')
from dual;
-->hh24 :24 对于获取 00:00 格式很重要。