ORACLE SQL日期处理

Oracle 中的日期型数据实际含有两个值: 日期和时间;当然有时候我们要显示给用户看的时间不一定是Oracle数据库的时间或用户提交过来的时间不符合数据库的格式,所以这时我们需要对日期进行一定的处理,以下是处理日期的函数:
日期的函数:

函数描述
TO_DATE把字符串转换成日期类型
TO_CHAR把日期转化成字符串类型
MONTHS_BETWEEN两个日期相差的月数
ADD_MONTHS指定日期的下一个星期*对应的日期
NEXT_DAY把字符串转换成日期类型
LAST_DAY本月的最后一天
ROUND日期的四舍五入
TRUNC日期截断

日期格式元素:

YYYY2019
YEAR TWO THOUSAND ANDFOUR
MM02
MONTHJULY
DYMON
DAYMONDAY
DD02

时间格式元素:

HH24:MI:SS AM16:20:36 PM
HH:MI:SS AM16:20:36 PM
  1. TO_DATE函数对字符串的转换:
SELECT TO_DATE('2018-2月-16','yyyy-MON-dd')FROM DUAL;

在这里插入图片描述
2. TO_CHAR函数对日期的转换:

SELECT TO_CHAR(sysdate,'yyyy-MON-dd')FROM DUAL;

在这里插入图片描述
3. MONTHS_BETWEEN两个日期相差的月数:

SELECT MONTHS_BETWEEN(TO_DATE('2019-12-25','yyyy-MM-dd'),sysdate)FROM DUAL;

在这里插入图片描述
4. ADD_MONTHS向指定日期中加上若干月数:

SELECT ADD_MONTHS(TO_DATE('2019-12-25','yyyy-MM-dd'),5)FROM DUAL;

在这里插入图片描述
5. NEXT_DAY 指定日期的下一个星期*对应的日期

SELECT NEXT_DAY(TO_DATE('2019-12-25','yyyy-MM-dd'),'星期一')FROM DUAL;

在这里插入图片描述
6. LAST_DAY本月的最后一天

SELECT LAST_DAY(TO_DATE('2019-12-25','yyyy-MM-dd'))FROM DUAL;

在这里插入图片描述
7. ROUND对日期的四舍五入

  1. 参数为YEAY时,按月份:月份范围1-6年份不变,7-12年份+1,月日为1
SELECT ROUND(TO_DATE('2019-7-25','yyyy-MM-dd'),'YEAR')FROM DUAL;

在这里插入图片描述
2) 参数为MONTH时,按日:日范围1-15月份不变,16-31月份+1,日为1

SELECT ROUND(TO_DATE('2019-7-16','yyyy-MM-dd'),'MONTH')FROM DUAL;

在这里插入图片描述
8. TRUNC对日期的截断

  1. 参数为YEAY时,年份不变,月日为1
SELECT TRUNC(TO_DATE('2018-08-02','yyyy-MM-dd'),'YEAR') FROM DUAL;

在这里插入图片描述
2) 参数为MONTH时,年月不变,日为1

SELECT TRUNC(TO_DATE('2018-08-15','yyyy-MM-dd'),'MONTH') FROM DUAL;

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值