在oracle中获取系统时间时用
SELECT sysdate FROM dual;
得到的是:2012-3-29 18:50:13但是我想让所有的月份和日期都是两位,
例如:2012-3-3
我想让它成为 2012-03-03 的形式,有什么办法吗?PS:1、不能用TO_CHAR。TO_CHAR虽然可以但要存储的类型是DATE型;
2、先转换成TO_CHAR,再转换成date型也不可以,因为它又变回原来的格式了
SELECT sysdate FROM dual;
得到的是:2012-3-29 18:50:13但是我想让所有的月份和日期都是两位,
例如:2012-3-3
我想让它成为 2012-03-03 的形式,有什么办法吗?PS:1、不能用TO_CHAR。TO_CHAR虽然可以但要存储的类型是DATE型;
2、先转换成TO_CHAR,再转换成date型也不可以,因为它又变回原来的格式了
数据库怎么存不关你的事
格式只是显示的问题
select to_char(sysdate,'yyyy-mm-dd') from dual;或者,修改会话选项
alter session set NLS_DATE_FORMAT='YYYY-MM-DD';
你想要什么样的格式,是根据自己设定得到的!
你也可以直接就取得两位月和日期的啊!
那日期的格式怎么设定,是不是TO_DATE(sysdate, 'YYYY-month-DD HH24:MI:SS');
但这样取到的结果还是2012-3-30的格式。不知道你有没有什么办法
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\zhongxianlin>sqlplus admin/adminSQL*Plus: Release 10.2.0.1.0 - Production on 星期五 3月 30 09:31:14 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsSQL> select to_char(sysdate,'yyyy-mm-dd') from dual;TO_CHAR(SY
----------
2012-03-30SQL>
看清楚啊,,,,我知道用to_char 可以,但现在我要的是date型,不用字符串
如果要想获得指定格式的日期,可以用to_char,如果要想得到date类型,可以to_char再to_date