给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(,'yyyy-mm-dd hh24-mi-ss') from bill;
TO_CHAR(,'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<to_date('1982-01-01','yyyy-mm-dd');