http://blog.csdn.net/szwangdf/article/details/1570005
to_char,函数功能,就是将数值型或者日期型转化为字符型。
比如最简单的应用:
/*1.0123--->'1.0123'*/Select TO_CHAR(1.0123) FROM DUAL
/*123--->'123'*/
Select TO_CHAR(123) FROM DUAL
接下来再看看下面:
/*0.123 ---> '.123' */SELEC TO_CHAR(0.123) FROM DUAL
上面的结果 '.123' 在大多数情况下都不是我们想要的结果,我们想要的应该是 '0.123'。
我们来看一下to_char函数的具体用法:
TO_CHAR ( n [, fmt [, 'nlsparam']] )该函数将NUMBER类型的n按数值格式fmt转换成VARCHAR2类型的值。'nlsparams'指定由数值格式的元素返回的字符,包括:
.小数点字符
.组分隔符
.本地钱币符号
.国际钱币符号
变元的形式为:
'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'
其中d为小数点字符,g为组分隔符。
例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145
通过上面的了解,再查看fmt的一些格式,我们可以用以下表达式得到'0.123'的值:
/*0.123 ---> ' 0.123' */Select TO_CHAR(0.123,'0.999') FROM DUAL
/*100.12 ---> '######' */
Select TO_CHAR(100.12,'0.999') FROM DUAL
/*1.12 ---> ' 1.120' */
Select TO_CHAR(1.12,'0.999') FROM DUAL
' 0.123'是出来了,可是前面又多了一个空格。
对于 100.12 的值却是######,以及'1.12'的值变成了 '1.120'。
我们重新确定一个新的需求:
1、去空格
2、小数点最多4位,最少保留2位。
1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';
1.12345--->'1.1235'
最终实现如下:
/*FM :除空格
9999999.0099:允许小数点左边最大正数为7位,小数点右边最少2位,最多4位,且在第5位进行四舍五入
*/
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL
===========
http://www.5ienet.com/note/html/numdate/oracle-number-format.shtml
二、 数值
格式串 说明及示例
---------- -----------------------------------------------------------
, 在指定位置附加逗号(便于阅读),注意逗号不能出现于格式字串首位,并且对于小数点的数字无效
例如:
SQL> select to_char(389999.00,¨99,999,999¨) from dual;
TO_CHAR(389
-----------
389,999. 按指定格式显示小数点及小数点后位置(指定数字没有小数的话,以0补足)
例如:
SQL> select to_char(18,¨999.000¨) from dual;
TO_CHAR(
--------
18.000$ 字符前附加$符
例如:
SQL> select to_char(18,¨$999¨) from dual;
TO_CH
-----
$18
SQL> select to_char(18,¨999$¨) from dual;
TO_CH
-----
$180 字符头部或尾部附加0
例如:
SQL> select to_char(18.0,¨0999¨) from dual;
TO_CH
-----
00189 与上类似以指定长度返回数值格式,不过如果被格式化的数值长度短于指定格式,则以空格补足。
例如:
SQL> select to_char(18.0,¨9999¨) from dual;
TO_CH
-----
18B 当整数部分是0时返回空格(即使存在0格式串也忽略)。
例如:
SQL> select to_char(0.18,¨B0999¨) from dual;
TO_CH
-----C 返回ISO默认指定的标识(默认标识可参见:NLS_ISO_CURRENCY)
例如:
SQL> select to_char(128.18,¨C999999.99¨) from dual;
TO_CHAR(128.18,¨C
-----------------
CNY128.18D 返回指定的小数点形式(默认符:.)(默认标识可参见:NLS_NUMERIC_CHARACTER)
例如:
SQL> select to_char(128.18,¨9999D99¨) from dual;
TO_CHAR(
--------
128.18
SQL> alter session set nls_numeric_characters=¨:"¨;
会话已更改。
SQL> select to_char(128.18,¨9999D99¨) from dual;
TO_CHAR(
--------
128:18EEEE 使用科学记数法显示
例如:
SQL> select to_char(128.18,¨9EEEE¨) from dual;
TO_CHAR
-------
1E+02G 与逗号功能类似,用指定字符分隔字串(默认符:,)(默认标识可参见:NLS_NUMERIC_CHARACTER)。
例如:
SQL> select to_char(11128.18,¨99G999¨) from dual;
TO_CHAR
-------
11,128
SQL> alter session set nls_numeric_characters=¨:"¨;
会话已更改。
SQL> select to_char(11128.18,¨99G999¨) from dual;
TO_CHAR
-------
11"128L 指定位置显示本地默认符号(默认值见:NLS_CURRENCY)
例如:
SQL> select to_char(999,¨L999¨) from dual;
TO_CHAR(999,¨L
--------------
¥999
SQL> alter session set nls_currency=¨haha¨;
会话已更改。
SQL> select to_char(999,¨L999¨) from dual;
TO_CHAR(999,¨L
--------------
haha999MI 负值在尾部显示-号,正值在尾部附加空格。另:该格式符必须处于格式串尾部
例如:
SQL> select to_char(-18,¨999MI¨) from dual;
TO_C
----
18-
SQL> select to_char(18,¨999MI¨) from dual;
TO_C
----
18PR 负值以<>尖括号包括,正值在头尾部各附加空格。另:该格式符必须处于格式串尾部
例如:
SQL> select to_char(-18,¨999PR¨) from dual;
TO_CH
-----
<18>
SQL> select to_char(18,¨999PR¨) from dual;
TO_CH
-----
18RN/rn 返回罗马数字形式。注:大写格式串返回大写罗马数字,小写格式串返回小写罗马数字:)
例如:
SQL> select to_char(18,¨RN¨) from dual;
TO_CHAR(18,¨RN¨
---------------
XVIII
SQL> select to_char(18,¨rn¨) from dual;
TO_CHAR(18,¨RN¨
---------------
xviiiS 显示数值正负值符号。可出现于格式串首部或尾部。
例如:
SQL> select to_char(18,¨S9999¨) from dual;
TO_CH
-----
+18
SQL> select to_char(18,¨9999S¨) from dual;
TO_CH
-----
18+TM 字符格式转换(标准数值与科学计数法),可以通过附加9或e控制输出,默认是tm9,如果输出超过64个字符,则数据库自动转换成科学计数法显示。该格式串不能与其它的数值型格式串同时使用。
例如:
SQL> select TO_CHAR(128,¨tme¨) from dual;
TO_CHAR(128,¨TME¨)
----------------------------------------------------------------
1.28E+02
SQL> select TO_CHAR(1.28E+02,¨tm¨) from dual;
TO_CHAR(1.28E+02,¨TM¨)
----------------------------------------------------------------
128U 与L类似,在指定位置显示货币单位(默认值见:NLS_DUAL_CURRENCY)
例如:
SQL> select TO_CHAR(128,¨999U¨) from dual;
TO_CHAR(128,¨9
--------------
128 ¥
SQL> alter session set nls_dual_currency=¨aaa¨;
会话已更改。
SQL> select TO_CHAR(128,¨999U¨) from dual;
TO_CHAR(128,¨9
--------------
128aaaV 数值+10的n次方,n=V后9的个数
例如:
SQL> select TO_CHAR(128,¨999V999¨) from dual;
TO_CHAR
-------
128000X 返回指定数值对应的16进制数,必须是正数。如果指定数值非整的话,oracle会自动round取整。
例如:
SQL> select TO_CHAR(16,¨XXXX¨) from dual;
TO_CH
-----
10
(2)日期及时间格式续 |
[君三思] 2007-12-14 |
SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399)例如: SQL> select to_char(sysdate,¨sssss¨) from dual; TO_CHAR(SYSDATE,¨SSSSS¨) ------------------------ 55141DL 根据数据库nls_date_format参数中的设置及nls_language,nls_territory参数中的格式返回长日期形式,有点儿绕,呵呵你试试就知道了例如: SQL> select to_char(sysdate,¨DL¨) from dual; TO_CHAR(SYSDATE,¨DL¨) ------------------------ 2007 年12月14日 星期五DS 与上相同返回短日期形式例如: SQL> select to_char(sysdate,¨Ds¨) from dual; TO_CHAR(SYSDATE,¨DS¨) --------------------- 2007-12-14TS 与DL,DS参数类似,不过ts返回的是时间例如: SQL> select to_char(sysdate,¨ts¨) from dual; TO_CHAR(SYSDATE,¨TS¨) --------------------- 下午 3:21:20DY 返回日期简写例如: SQL> alter session set nls_language=¨SIMPLIFIED CHINESE¨; 会话已更改。 SQL> select to_char(sysdate,¨dy¨) from dual; TO_CHAR(SYSD ------------ 星期五 嗯?怎么没变?黑黑中文没法简了嘛,这样试试~~ SQL> alter session set nls_language=¨AMERICAN¨; Session altered. SQL> select to_char(sysdate,¨dy¨) from dual; TO_CHA ------ friRR RR 参数与YY参数很类似,但取值规则略有不同:如果输入的两位数是00-49: 如果当前年份属于00-49,则返回成本世纪所在年份; 如果当前年份属于50-99,则返回成下世纪所在年份。 如果输入的两位数是50-99: 如果当前年份属于00-49,则返回成上世纪所在年份 如果当前年份属于50-99,则返回成本世界所在年份 注:这种自动转换只适用于 String -> Date 的转换,如果是 Date -> String,那就按照 Date 存储的值来转换,此时再用 RR/RRRR 已经没有意义了,因为 Oracle 内部存储的年份是四位数的。例如: SQL> select sysdate from dual; SYSDATE ------------------- 2007-12-18 15:11:39 SQL> select to_date(¨12¨,¨rr¨) from dual; TO_DATE(¨12¨,¨RR¨) ------------------- 2012-12-01 00:00:00 SQL> select to_date(¨51¨,¨rr¨) from dual; TO_DATE(¨51¨,¨RR¨) ------------------- 1951-12-01 00:00:00RRRR 输入值可以是2位也可以是4位,2位时规则与RR完全相同。 例如: SQL> select to_date(¨97-11-3¨,¨rrrr-mm-dd¨) from dual; TO_DATE(¨97-11-3¨,¨RRRR-MM-DD¨ ------------------------------ 1997-11-3 SQL> select to_date(¨17-11-3¨,¨rrrr-mm-dd¨) from dual; TO_DATE(¨17-11-3¨,¨RRRR-MM-DD¨ ------------------------------ 2017-11-3
FM 填充模式。 Oracle 默认使用空白字符填充被格式化的元素,确保宽度一致。例如: 例如: SQL> select to_char(to_date(¨2007-3-1¨,¨yyyy-mm-dd¨),¨month¨) mm,length(to_char(to_date(¨2007-3-1¨,¨yyyy-mm-dd¨),¨month¨)) ll from dual; MM LL --------- ---------- march 9 SQL> select to_char(to_date(¨2007-12-1¨,¨yyyy-mm-dd¨),¨month¨) mm,length(to_char(to_date(¨2007-12-1¨,¨yyyy-mm-dd¨),¨month¨)) ll from dual; MM LL --------- ---------- december 9如上例可以看到,不管几月份,其返回所占长度是一致的。
例如: SQL> select to_char(to_date(¨2007-3-1¨,¨yyyy-mm-dd¨),¨fmmonth¨) mm,length(to_char(to_date(¨2007-3-1¨,¨yyyy-mm-dd¨),¨fmmonth¨)) ll from dual; MM LL ----- ---------- march 5 SQL> select to_char(to_date(¨2007-12-1¨,¨yyyy-mm-dd¨),¨fmmonth¨) mm,length(to_char(to_date(¨2007-12-1¨,¨yyyy-mm-dd¨),¨fmmonth¨)) ll from dual; MM LL -------- ---------- december 8 与上对比,看出区别来了吧。
例如: SQL> alter session set nls_date_format=¨fmyyyy-mm-dd hh24:mi:ss¨; Session altered. SQL> select to_date(¨2007-8-1 03:03:04¨,¨yyyy-mm-dd hh24:mi:ss¨) from dual; TO_DATE(¨2007-8-103 ------------------- 2007-8-1 3:3:4 SQL> alter session set nls_date_format=¨yyyy-mm-dd hh24:mi:ss¨; Session altered. SQL> select to_date(¨2007-8-1 03:03:04¨,¨yyyy-mm-dd hh24:mi:ss¨) from dual; TO_DATE(¨2007-8-103 ------------------- 2007-08-01 03:03:04 SQL> alter session set nls_date_format=¨fmyyyy-mm-fmdd hh24:fmmi:ss¨; Session altered. SQL> select to_date(¨2007-8-1 03:03:04¨,¨yyyy-mm-dd hh24:mi:ss¨) from dual; TO_DATE(¨2007-8-103 ------------------- 2007-8-01 03:3:4FX 精确匹配。使用FX参数之后:
例如: SQL> select to_date(¨2007-9-26¨,¨yyyy-mm-dd¨) from dual; TO_DATE(¨2007-9-26¨ ------------------- 2007-09-26 00:00:00 SQL> select to_date(¨2007-9-26¨,¨fxyyyy-mm-dd¨) from dual; select to_date(¨2007-9-26¨,¨fxyyyy-mm-dd¨) from dual * ERROR at line 1: ORA-01862: the numeric value does not match the length of the format item SQL> select to_date(¨2007-09-26¨,¨fxyyyy-mm-dd¨) from dual; TO_DATE(¨2007-09-26 ------------------- 2007-09-26 00:00:00 SQL> select to_date(¨2007-9-26¨,¨fxyyyy-fmmm-dd¨) from dual; TO_DATE(¨2007-9-26¨ ------------------- 2007-09-26 00:00:00 SQL> select to_date(¨2007-9-26¨,¨fxyyyy/fmmm/dd¨) from dual; select to_date(¨2007-9-26¨,¨fxyyyy/fmmm/dd¨) from dual * ERROR at line 1: ORA-01861: literal does not match format stringX 本地的默认分隔符例如: SQL> select to_char(systimestamp,¨hh24:mi:ssxff¨) from dual; TO_CHAR(SYSTIMESTAMP,¨HH24:MI: ------------------------------ 16:21:12.609000以下四项为时区相关参数, 明确表示某一个时区,应该联合使用 TZH TZM 或者 TZR TZDTZD /TZR例如: SQL> select to_char(systimestamp,¨tzr:tzd¨) from dual; TO_CHAR(SYSTIMESTAMP,¨TZR:TZD¨) --------------------------------------- +08:00:TZH/TZM例如: SQL> select to_char(systimestamp,¨tzh:tzm¨) from dual; TO_CHA ------ +08:00应用示例:1、 与指定日期在同一周,周1的日期是:SQL> select to_date(¨2007-12-6¨, ¨yyyy-mm-dd¨) 2 - to_char(to_date(¨2007-12-6¨, ¨yyyy-mm-dd¨), ¨d¨) + 2 3 from dual; TO_DATE(¨2 ---------- 2007-12-03 SQL> select trunc(to_date(¨2007-12-6¨, ¨yyyy-mm-dd¨), ¨d¨) + 1 rn from dual; TRUNC(TO_DATE(¨2007-12-6¨,¨YYY ------------------------------ 2007-12-3 SQL> select next_day(to_date(¨2007-12-6¨, ¨yyyy-mm-dd¨) - 7, ¨ 星期一¨) from dual; NEXT_DAY(TO_DATE(¨2007-12-6¨,¨ ------------------------------ 2007-12-32、 指定日期当月最后一个星期天:SQL> select max(rn) 2 from (select to_date(¨2007-12-¨ || rownum, ¨yyyy-mm-dd¨) rn 3 from dual 4 connect by rownum <= 5 (to_char(to_date(¨2007-12-31¨, ¨yyyy-mm-dd¨), ¨dd¨))) a 6 where to_char(a.rn, ¨d¨) = 1 7 ; MAX(RN) ----------- 2007-12-30 SQL> select next_day(trunc(to_date(¨2007-12-31¨, ¨yyyy-mm-dd¨), ¨month¨)+31-7,¨ 星期日¨) from dual; NEXT_DAY(TRUNC(TO_DATE(¨2007-1 ------------------------------ 2007-12-303、 今年第127天是几号:SQL> select to_date(¨127¨,¨ddd¨) from dual; TO_DATE(¨1 ---------- 2007-05-07 |
===
http://www.5ienet.com/note/html/numdate/oracle-date-time-format(1).shtml
(1)日期及时间格式 |
[君三思] 2007-12-13 |
经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference官方文档,并附上详细的应用示例综合成文,希望能够对大家学习和使用有所帮助。本篇可视为"oracle著名及非著名函数介绍"的补充! 环境:SQL> select *from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod PL/SQL Release 10.2.0.3.0 - Production CORE 10.2.0.3.0 Production TNS for 32-bit Windows: Version 10.2.0.3.0 - Production NLSRTL Version 10.2.0.3.0 - Production SQL> SELECT SESSIONTIMEZONE FROM DUAL; SESSIONTIMEZONE --------------------------------------------------------------------------- +08:00 SQL> show parameter nls; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ nls_date_format string yyyy-mm-dd hh24:mi:ss nls_language string SIMPLIFIED CHINESE一、 日期及时间格式串 说明及示例 ---------- ----------------------------------------------------------- -/,.;: 指定返回字串分隔符例如: SQL> select to_char(sysdate,¨yyyy/mm/dd¨) from dual; TO_CHAR(SYSDATE,¨YYYY/MM/DD¨) ----------------------------- 2007/12/14 SQL> select to_char(sysdate,¨yyyy-mm-dd¨) from dual; TO_CHAR(SYSDATE,¨YYYY-MM-DD¨) ----------------------------- 2007-12-14AD/A.D. 公元标识例如: SQL> select to_char(sysdate,¨AD YYYY-MM-DD¨) from dual; TO_CHAR(SYSDATE,¨ADYYYY-MM-DD¨ ------------------------------ 公元 2007-12-14BC/B.C. 公元标识例如 SQL> select to_char(sysdate,¨BC YYYY-MM-DD¨) from dual; TO_CHAR(SYSDATE,¨BCYYYY-MM-DD¨ ------------------------------AM/A.M. 子午线标识例如: SQL> select to_char(sysdate,¨YYYY-MM-DD AM hh24:mi:ss¨) from dual; TO_CHAR(SYSDATE,¨YYYY-MM-DDAMH ------------------------------ 2007-12-14 下午 13:41:58PM/P.M. 子午线标识例如: SQL> select to_char(sysdate,¨YYYY-MM-DD PM hh24:mi:ss¨) from dual; TO_CHAR(SYSDATE,¨YYYY-MM-DDPMH ------------------------------ 2007-12-14 下午 13:42:23CC/SCC 世纪标识,S前缀指定如遇公元前的显示,会在显示前加(-)提示:
例如: SQL> select to_char(to_date(¨2000-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual; TO_CHAR(TO_DATE(¨2000-8-3¨,¨YY ------------------------------ 20 SQL> select to_char(to_date(¨2001-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual; TO_CHAR(TO_DATE(¨2001-8-3¨,¨YY ------------------------------ 21D 指定日期在周中的数值(范围:1-7)例如: SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨D¨) from dual; TO_CHAR(TO_DATE(¨2007-12-14¨,¨ ------------------------------ 6DD 指定日期在当月中的天数(范围:1-31)例如: SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DD¨) from dual; TO_CHAR(TO_DATE(¨2007-12-14¨,¨ ------------------------------ 14DDD 指定日期在当年中的天数(范围:1-366)例如: SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DDD¨) from dual; TO_CHAR(TO_DATE(¨2007-12-14¨,¨ ------------------------------ 348DAY 指定日期在周中的名称例如: SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨Day¨) from dual; TO_CHAR(TO_DATE(¨2007-12-14¨,¨ ------------------------------ 星期五MON 返回指定日期的月份简写例如: SQL> select to_char(sysdate,¨MON¨) from dual; TO_CHAR(SYSDATE,¨MON¨) ---------------------- 12 月MONTH 返回指定日期的月份全称例如: SQL> select to_char(sysdate,¨MONTH¨) from dual; TO_CHAR(SYSDATE,¨MONTH¨) ------------------------ 12 月YEAR/SYEAR 返回字符型年,此处s前缀与SCC处相同例如: SQL> select to_char(sysdate,¨year¨) from dual; TO_CHAR(SYSDATE,¨YEAR¨) ------------------------------------------ two thousand sevenYYYY/SYYYY 返回数字型年,此处s前缀与SCC处相同例如: SQL> select to_char(sysdate,¨yyyy¨) from dual; TO_CHAR(SYSDATE,¨YYYY¨) ----------------------- 2007MM 返回指定日期的月份(范围:1-12)例如: SQL> select to_char(sysdate,¨MM¨) from dual; TO_CHAR(SYSDATE,¨MM¨) --------------------- 12HH 小时(范围:1-12)例如: SQL> select to_char(sysdate,¨am hh¨) from dual; TO_CHAR(SYSDATE,¨AMHH¨) ----------------------- 下午 02HH12 小时(范围:1-12)例如: SQL> select to_char(sysdate,¨am hh12¨) from dual; TO_CHAR(SYSDATE,¨AMHH12¨) ------------------------- 下午 02HH24 小时(范围:0-23)例如: SQL> select to_char(sysdate,¨am hh24¨) from dual; TO_CHAR(SYSDATE,¨AMHH24¨) ------------------------- 下午 14MI 返回指定时间的分钟(范围0-59)例如: SQL> select to_char(sysdate,¨MI¨) from dual; TO_CHAR(SYSDATE,¨MI¨) --------------------- 05SS 返回指定时间的秒数(范围:0-59)例如: SQL> select to_char(sysdate,¨ss¨) from dual; TO_CHAR(SYSDATE,¨SS¨) --------------------- 34FF[1-9] 返回毫秒数,可指定长度1-9,默认6位例如: SQL> select to_char(systimestamp,¨ff4¨) from dual; TO_CHAR(S --------- 6710Y,YYY 返回有逗号分隔显示的年例如: SQL> select to_char(sysdate,¨y,yyy¨) from dual; TO_CHAR(SYSDATE,¨Y,YYY¨) ------------------------ 2,007I/IY/IYY/IYYY 返回ISO标准年例如: SQL> select to_char(to_date(¨187-4-3¨,¨yyyy-mm-dd¨),¨IYYY¨) from dual; TO_CHAR(TO_DATE(¨187-4-3¨,¨YYY ------------------------------ 0187Y/YY/YYY 以指定长度返回日期的年份例如: SQL> select to_char(sysdate,¨yy¨) from dual; TO_CHAR(SYSDATE,¨YY¨) --------------------- 07W 返回指定日期在当月中的第X周(范围:1-5)例如: SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨w¨) from dual; TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y ------------------------------ 3WW 返回指定日期在当年中的第X周(范围:1-53)例如: SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨ww¨) from dual; TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y ------------------------------ 25IW 指定日期在当年中第X周(范围:1-52或1-53(润年))例如: SQL> select to_char(sysdate,¨IW¨) from dual; TO_CHAR(SYSDATE,¨IW¨) --------------------- 50RM 以罗马数字形式返回月份(范围I-XII)例如: SQL> select to_char(to_date(¨2007-11-3¨,¨yyyy-mm-dd¨),¨RM¨) from dual; TO_CHAR(TO_DATE(¨2007-11-3¨,¨Y ------------------------------ XIQ 返回指定日期的季度(范围:1-4)例如: SQL> select to_char(to_date(¨2007-2-3¨,¨yyyy-mm-dd¨),¨q¨) from dual; TO_CHAR(TO_DATE(¨2007-2-3¨,¨YY ------------------------------ 1J 自公元前 4712 年1月1日到指定日期的总天数例如: SQL> select to_char(sysdate,¨J¨) from dual; TO_CHAR(SYSDATE,¨J¨) -------------------- 2454449 |