当我在Oracle中执行以下查询时
select TO_CHAR((CURRENT_DATE),'DD-Mon-YYYY HH24:MI:SS') from dual;
O/P : 04-Mar-2014 14:25:14
我想选择current date
,而不选择current time
,如下所示
select TO_CHAR(trunc(CURRENT_DATE),'DD-Mon-YYYY HH24:MI:SS') from dual;
O/P : 04-Mar-2014 00:00:00
实现唯一的方法是在查询中应用函数trunc()
?还有别的办法吗?
编辑:感谢您的回复。可以在没有任何功能的情况下完成吗?(无需使用to_char或trunc)
{抱歉错过了此信息}
答案 0 :(得分:2)
答案只是没有,没有功能只能获取日期/时间的日期部分(毕竟偶然current_date
或sysdate
是函数)。
您应该始终使用trunc
来获取当前日期,而不是时间。
没有必要一起做trunc
和to_char
。保留to_char
,不要指定时间部分。
这就足够了:
将日期设为varchar
:
select TO_CHAR(CURRENT_DATE,'DD-Mon-YYYY') from dual
要将日期设为date
,时间部分为00:00:00
:
select trunc(CURRENT_DATE) from dual
答案 1 :(得分:1)
你可以这样做:
select TO_CHAR(CURRENT_DATE,'DD-Mon-YYYY')||' 00:00:00' from dual;
答案 2 :(得分:1)
还有EXTRACT功能可以这样使用:
SELECT extract(DAY FROM sysdate)
||'-' ||
extract(MONTH FROM sysdate)
|| '-' || extract(YEAR FROM sysdate)
FROM dual;
结果:4-3-2014
答案 3 :(得分:-1)
使用此查询...
select (TO_CHAR(TRUNC(CURRENT_DATE),'DD-Mon-YYYY HH24:MI:SS')) from dual