Oracle05——日期运算
1.Oracle中系统日期的表示方式
在Oracle中,系统日期是有一个预定义变量表示的,该变量名称叫 SYSDATE,
举例说明: 获取系统当前时间
SELECT SYSDATE FROM DUAL
2.日期与字符串的双向转换
字符串与日期之间的双向转换,Oracle中是通过两个内置函数完成
将日期转换成字符串 TO_CHAR(日期类型,格式字符串)
格式字符串:日期转换成字符串后的显示格式,格式串不区分大小写
例子2:将系统当前时间,转换成 四位年-两位月-两位日
SELECT SYSDATE,
TO_CHAR(SYSDATE,'YYYY-MM-DD')
TO_CHAR(SYSDATE,'YYYY-MM-DD')ISODATE(标准型)
TO_CHAR(SYSDATE,'MM-DD-YYYY') "$DATE",
TO_CHAR(SYSDATE,'YYYY MM DD HH24:MI:SS')时间戳
FROM DUAL;
将字符串转换成日期:TO_DATE(日期字符串,格式字符串)
例子:将指定的字符串转换成日期:2017-11-17
SELECT TO_DATE('2017-11-17','YYYY-MM-DD')
FROM DUAL;
3.日期类型在数据库中的存储问题:
所有数据库中,日期类型都是以一个长整数存储到数据库中的.
该整数代表的都是指定日期与标准时间(1970-01-01 00:00:00)之间的毫秒差
4.Oracle中的天数加减问题
在Oracle中,日期可以直接与整数进行加减计算,单位是天
SELECT TO_DATE('2017-11-17','YYYY-MM-DD')+1,
FROM DUAL;
5.修改指定的列为系统时间
增加列
ALTER TABLE PERSON ADD PDATE DATE(--这个DATE是数据类型)
修改时间
UPDATE PERSON A
SET A.PDATE=SYSDATE,
COMMIT;
修改指定的记录为指定的时间
UPDATE PERSON A
SET A.PDATE=TO_DATE('2017-11-17','YYYY-MM-DD')
WHERR PID=12;
COMMIT;
6.时分秒的加减
SELECT SYSDATE
--三小时后
SYSDATE+3/24,
--十分钟后
SYSDATE+10/60/24,
--5秒后
SYSDATE+5/60/60/24,
--3600毫秒之后
SYSDATE+3600/1000/60/60/24,
7.月份的加减
月份加减是通过Oracle内置函数ADD_MONTHS(日期,数值)完成的.
数值 为正数 加相应月数
数值 为负数 减相应月数
例子:计算指定日期的次月同日
请计算2013-01-30的次月同时,问是哪一天
如果次月无同日,那么一次月最后一日,为次月同日。
SELECT ADD_MONTHS(TO_DATE('2013-01-30','YYYY-MM-DD'),1)
FROM DUAL;