oracle数据库中输入date类型的数据

给oracle数据库已有记录中更新date类型的数据:

插入date类型的格式to_date('2016-01-03 12-23-19','yyyy-mm-dd hh24-mi-ss');

2016-01-03 12-23-19:表示想要插入的时间

yyyy-mm-dd hh24-mi-ss时间格式,前面为年-月-日,后面为时-分-秒

总之插入的时间格式要与时间格式一致:20160103 122319对应格式yyyymmdd hh24miss

SQL> update student set time=(to_date('2016-01-2 06:00:07','yyyy-mm-dd hh12:mi:ss'));

插入完成后,我们查询得到:

SQL> select * from student;
                                    SID             SNAME                             SAGE                   SSEX       TIME
--------------------------------------- --------------- --------------------------------------- ---------- -----------
                                      2                 张三                                    20                           男         2016/1/2 6:
                                      3                 李四                                    20                           男         2016/1/2 6:
                                      4                 王五                                    22                           男         2016/1/2 6:
                                      5                 李玲                                    21                           女         2016/1/2 6:
                                      6                 安琪                                    19                           女         2016/1/2 6:
                                      7                 美嘉                                     21                          女         2016/1/2 6:
                                      1                 王楠                                     18                          女         2016/1/2 6:
                                      8                 王楠                                     23                          女         2016/1/2 6:

我们发现小时后面的分和秒并没有显示出来,在网上查找原因得到的答案是:这个不是你能控制的,可以在相关工具上进行显示设置,程序上也必须做一定的格式化处理,至于oracle存储的格式,你是没办法改变的


后面发现,是我们查询日期的方式不对,使用:

SQL> select time from bill;
TIME
-----------
2016/9/24 1


正确的查询时间的语句如下:

SQL> select to_char(bill.time,'yyyy-mm-dd hh24-mi-ss') from bill;
TO_CHAR(BILL.TIME,'YYYY-MM-DDH
------------------------------
2016-09-24 11-25-16

使用to_char方法

在Oracle中查询时间可以使用to_char函数,但是在Mysql中是没有to_char函数的,Mysql中可以使用Date_Format函数,且使用方法和Oracle中的to_char函数一致:Date_Format(time, '格式')


关于oracle中日期的比较:

SQL> desc emp;
Name              Type                 Nullable    Default Comments
--------           ------------               --------         -------    --------
EMPNO         NUMBER(4)                              
ENAME         VARCHAR2(10)      Y                         
JOB               VARCHAR2(9)        Y                         
MGR             NUMBER(4)            Y                         
HIREDATE   DATE                       Y                         
SAL                NUMBER(7,2)      Y                         
COMM           NUMBER(7,2)      Y                         
DEPTNO      NUMBER(2)         Y

emp表中hiredate就是date类型,举例说明比较方法:

查询出所有1982年之前入职的员工信息:

select  *  from  emp where hiredate

你可能感兴趣的:(数据库)