40.Oracle数据库SQL开发之 日期和时间的存储与处理——使用TO_CHAR和TO_DATE

来源:互联网 发布:天刀捏脸数据库男性萌 编辑:程序博客网 时间:2024/06/05 05:43

40.Oracle数据库SQL开发之 日期和时间的存储与处理——使用TO_CHAR和TO_DATE

欢迎转载,转载请标明出处:      http://blog.csdn.net/notbaron/article/details/49723201  

 Oracle数据库有一些函数可以将一个值从一种数据类型转换为另一种数据类型。

         TO_CHAR将时间值转换为字符串;TO_DATE将字符串转换为DATE类型。

1.  使用TO_CHAR将时间值转换为字符串

TO_CHAR(x [, format])用于将时间值x转换为字符串。

Format用来说明x 的格式,MONTH是大写的月份全名,DD是2为的天数,YYYY是4为的年份。

如下:

store@PDB1> select customer_id,to_char(dob,'MONTHDD,YYYY') from customers;

 

CUSTOMER_ID TO_CHAR(DOB,'MONT

----------- -----------------

           1 JANUARY  01,1965

           2 FEBRUARY 05,1968

           3 MARCH    16,1971

           4

           5 MAY      20,1970

可以使用SYSDATE函数从该数据库中获得当前的日期和时间。使用TO_CHAR函数将其转换为字符串,格式为MONTH DD,YYYY,HH24:MT:SS。

执行:

store@PDB1> select to_char(sysdate,'MONTHDD,YYYY,HH24:MI:SS') from dual;

 

TO_CHAR(SYSDATE,'MONTHDD,Y

--------------------------

NOVEMBER 08,2015,11:26:07

将1968年2月5日转换成格式为MONTH DD,YYYY的字符串:

store@PDB1> selectto_char(to_date('05-feb-1968'),'MONTH DD,YYYY') from dual;

 

TO_CHAR(TO_DATE('

-----------------

FEBRUARY 05,1968

2.  使用TO_DATE将字符串转换为时间值

TO_DATE(x [, format])用于将字符串x转换为时间值,该函数可以指定一个可选的字符串format参数来说明x 的格式。

PS:数据库参数NLS_DATE_FORMAT指定了默认的日期格式。

store@PDB1> selectto_date('04-jul-2007'),to_date('04-jul-07') from dual;

TO_DATE(' TO_DATE('

--------- ---------

04-JUL-07 04-JUL-07

2.1         指定时间值格式

执行如下:

store@PDB1>select to_date('July 4,2007','MONTH DD, YYYY') from dual;

TO_DATE('

---------

04-JUL-07

输出格式为DD-MON-YY。

store@PDB1> select to_date('7.4.07','MM.DD.YY')from dual;

TO_DATE('

---------

04-JUL-07

2.2         指定时间

在时间值中也可以指定时间。如果没有指定时间,那么时间值的时间部分默认为12:00:00 A.M. 时间格式的一个例子是HH24:MI:SS

执行如下:

store@PDB1>insert into customers(customer_id,first_name,last_name,dob,phone) values (

  6,'Fred','Brown',TO_DATE('05-feb-196819:32:36','DD-MON-YYYY HH24:MI:SS'),'800-555-1215');

 

1 row created.

执行查询如下:

store@PDB1> selectcustomer_id,to_char(dob,'DD-MON-YYYY HH24:MI:SS') from customers;

 

CUSTOMER_ID TO_CHAR(DOB,'DD-MON-

----------- --------------------

           6 05-FEB-1968 19:32:36

           1 01-JAN-1965 00:00:00

           2 05-FEB-1968 00:00:00

           3 16-MAR-1971 00:00:00

           4

           5 20-MAY-1970 00:00:00

 

6 rows selected.

实验完毕后,回滚。

ROLLBACK;

2.3         组合使用TO_CHAR和TO_DATE函数

TO_CHAR和TO_DATE函数可以组合使用。

执行如下:

store@PDB1> select to_char(to_date('05-feb-196819:32:36','DD-MON-YYYY HH24:MI:SS'), 'HH24:MI:SS') FROM dual;

 

TO_CHAR(

--------

19:32:36

0 0
原创粉丝点击