Oracle 基础总结:日期函数专题

article/2025/9/26 21:22:48

Oracle 基础总结:日期函数专题

    • 日期函数:
          • 1、SYSDATE
          • 2、日期函数:
            • (1) MONTHS_BETWEEN(日期1,日期2):返回两个日期相差的月数。
            • (2) ADD_MONTHS(日期,数值):向指定日期中加上若干月数。
            • (3) NEXT_DAY(日期,星期几):返回值为指定日期的下一个星期几。
            • (4)LAST_DAY(日期):返回值为指定日期中的月份的最后一天。
          • 3、日期函数: ROUND(日期,参数):日期的四舍五入。
          • 4、日期函数: TRUNC (日期,参数):日期的截断。
          • 5、返回日期的指定部分: EXTRACT(指定部分 from 日期)
          • 6、TO_CHAR函数对日期的转换
          • 7、TO_DATE 函数对字符的转换:使用 TO_DATE 函数将字符转换成数字

开发工具与关键技术: oracle plsql developer

撰写时间:2019-03-30

日期函数:

(一)日期的数学运算注意事项:
(1) 在日期上加上或减去一个数字结果仍为日期
(2) 两个日期相减返回日期之间相差的天数。
(3) 日期不允许做加法运算,无意义
(4) 可以用数字除24来向日期中加上或减去天数
(二)参数:不区分大小写,
年 :yyyy 、yy、YEAR
月 :mm、MONTH
星期:DAY
日 :dd
时 :hh
分 :mi
秒 :ss
1、SYSDATE

返回系统的当前日期和时间:包括年、月、日、时、分、秒。

查询语句例句:

select sysdate from dual; -- 2019/3/30 21:57:34

查询结果视图:
在这里插入图片描述

2、日期函数:

MONTHS_BETWEEN()、 ADD_MONTHS()、 NEXT_DAY()、 LAST_DAY()

查询语句例句:

select MONTHS_BETWEEN ('01-9月-1993','11-1月-1994') as MONTHS_BETWEEN ,ADD_MONTHS ('11-1月-94',25) as ADD_MONTHS ,NEXT_DAY ('01-1月-95','星期五') as NEXT_DAY ,LAST_DAY('01-2月-95') as LAST_DAY 
from dual;

查询结果视图:
在这里插入图片描述

(1) MONTHS_BETWEEN(日期1,日期2):返回两个日期相差的月数。

计算方式是日期1减去日期2,然后转换成月数,如果日期1>日期2,值为正;反之,值为负。

(2) ADD_MONTHS(日期,数值):向指定日期中加上若干月数。

当前月份+数值=增加后的月份,
如果增加后的月份>12,则计算 (增加后的月份 - 12)/12= 商 + 余数,
       当余数 > 0, 日期的年份 当前年份 + 商,月份变为余数;
       当余数 = 0, 日期的年份变为 当前年份 + 商 - 1,月份为12月。
如果增加后的月份<12,则年份不变,月份变为增加后的月份。

(3) NEXT_DAY(日期,星期几):返回值为指定日期的下一个星期几。

参数的星期几使用汉字或英文是由使用的工具的语言而定的。

(4)LAST_DAY(日期):返回值为指定日期中的月份的最后一天。
3、日期函数: ROUND(日期,参数):日期的四舍五入。

查询语句例句:

select  SYSDATE  as  当前时间,     --2019/3/30 10:40:41
ROUND(SYSDATE, 'YEAR')   as,-- 四舍五入到 年  YEAR :不分大小写,也可以是 yyyy 或 yy
ROUND(SYSDATE, 'MONTH') as,-- 四舍五入到 月  MONTH:不分大小写,也可以是 mm
ROUND(SYSDATE, 'DAY')   as 星期,-- 四舍五入到 星期 DAY:不分大小写
ROUND(SYSDATE, 'dd')    as,  -- 四舍五入到 日   DD:不分大小写
ROUND(SYSDATE, 'hh')    as,  -- 四舍五入到 时   HH:不分大小写
ROUND(SYSDATE, 'mi')    as-- 四舍五入到 分   MI:不分大小写
from dual;

查询结果视图: 在这里插入图片描述
个人理解:

对于日期的四舍五入,它和数学的四舍五入不太一样
对于来说是‘6舍7入’,当月份>=7,就往前进1,即年份+1,否则,月被舍去,归1,年份不变;
对于来说是‘16舍17入’,当日>=17,就往前进1,即月份+1,否则,日被舍去,归1,月份不变。
对于来说是‘11舍12入’,当日>=12,就往前进1,即日+1,否则,时被舍去,归0,不显示,日不变 。(24小时制)
对于来说是‘29舍30入’,当分>=30,就往前进1,即时+1,否则,分被舍去,归0。
对于来说是‘29舍30入’,当秒>=30,就往前进1,即分+1,否则,秒被舍去,归0。
对于星期来说是‘三舍四入’,当指定日期的星期部分大于或等于星期四,则星期+1,即返回下星期的星期天的日期;否则,返回该星期的最小值 星期天的日期。 (星期从星期日数起)

如果参数为’YEAR’,即是日期四舍五入到年,判断月份,月份>=6,年份+1,否则年份不变,月和日的值为最小值的1月1日。时间部分被去掉。

如果参数为’MONTH’,即是日期四舍五入到月,判断日,日>=17,月份+1,否则月份不变,日的值为1。
如果 月份+1>12,则年份+1,月和日的值为最小值的1月1日。时间部分被去掉。

如果参数为DAY,即是日期四舍五入到星期,判断当前日期的星期部分是否大于或等于星期四,如果是,则星期+1,即返回下星期的星期天的日期,如果否,返回该星期的最小值 星期天的日期。时间部分被去掉。
(星期从星期日数起)

如果参数为’DD’,即是日期四舍五入到天,判断时,时>=12,日+1,否则日不变。
如果 日+1>当前月的最后一日,则月份+1,日的值为最小值1日;
如果 月份+1>12,则年份+1,月和日的值为最小值的1月1日。时间部分会被去掉。

如果参数为’HH’,即是日期四舍五入到时,判断分,分>=30,时+1,否则时不变,分的值为0。
如果 时+1>=24,则日+1。
如果 日+1>当前月的最后一日,则月份+1,日的值为最小值1日;
如果 月份+1>12,则年份+1,月和日的值为最小值的1月1日。

如果参数为’MI’,即是日期四舍五入到分,判断秒,秒>=30,分+1,否则分不变,秒的值为0。
如果 分+1>=60,则时+1,否则分不变。
如果 时+1>=24,则日+1,否则时不变。
如果 日+1>当前月的最后一日,则月份+1,日的值为最小值1日,否则日不变;
如果 月份+1>12,则年份+1,月和日的值为最小值的1月1日,否则月不变。

再次注意:只有当参数为’HH’或’MI’时,时间部分才不会被去掉。

4、日期函数: TRUNC (日期,参数):日期的截断。

查询语句例句:

select SYSDATE as 当前时间,     --2019/3/30 21:02:24
TRUNC(SYSDATE,'YEAR')  as,  -- 截断到 年
TRUNC(SYSDATE,'MONTH') as,  -- 截断到 月
TRUNC(SYSDATE,'DAY')   as 星期,-- 截断到 星期
TRUNC(SYSDATE,'dd')    as,  -- 截断到 日
TRUNC(SYSDATE,'hh')    as,  -- 截断到 时
TRUNC(SYSDATE,'mi')    as-- 截断到 分
from dual;

查询结果视图:在这里插入图片描述
个人理解:

日期的截断, 是对当前的日期的部分值还原为最小值
如果参数为’YEAR’,即日期截断到年,年的值不变,月和日的值为最小值的1月1日。时间部分被去掉。
如果参数为’MONTH’,即日期截断到月,年、月的值不变,日的值为最小值的1日。时间部分被去掉。
如果参数为DAY,即日期截断到星期,返回的值为当前星期的最小值 星期日的日期。(星期从星期日数起)时间部分被去掉。
如果参数为DD,即日期截断到日,年、月、日的值都不变,时间部分被去掉。
如果参数为’HH’,即日期截断到日,年、月、日、时的值都不变,分和秒的值都为0。
如果参数为MI,即日期截断到日,年、月、日、时、分的值都不变,秒的值都为0。

再次注意:只有当参数为’HH’或’MI’时,时间部分才不会被去掉。

5、返回日期的指定部分: EXTRACT(指定部分 from 日期)

查询语句例句:

select	sysdate as "当前时间",            --2019/3/30 21:33:55
extract(year from sysdate) AS "年" ,  --返回日期的 年 部分
extract(month from sysdate) AS "月" , --返回日期的 月 部分
extract(day from sysdate) AS "日"      --返回日期的 日 部分
from dual;

查询结果视图:
在这里插入图片描述
更多关于日期提取函数的内容,如 提取时分秒 等,在下面的链接中。
链接: oracle中extract()函数----用于截取年、月、日、时、分、秒.
作者:小强斋太。

6、TO_CHAR函数对日期的转换

查询语句例句:

select systimestamp ,-- 30-3月 -19 09.52.45.024000 下午 +08:00
to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss.ff3 ') , --2019-03-30 21:51:25.765
TO_CHAR(sysdate,'yyyy-mm-dd hh:mi:ss'),-- 2019-03-30 09:51:25
from dual; 

1)systimestamp:查询系统时间,查询结果包括:毫秒上下午时区
而sysdate的返回结果只包括:

2)TO_CHAR(日期,日期格式):将日期转化成指定格式的字符串。

3)TO_CHAR函数在where子句的使用

Select employee_id, last_name, hire_date  from employees 
where to_char(hire_date,'yyyy-mm-dd') = '1987-09-17';

查询结果视图:
在这里插入图片描述

注意日期格式:
(1)日期格式必须包含在单引号中而且大小写敏感。
(2)日期格式可以包含任意的有效的日期格式。
(3)日期之间用逗号隔开。

7、TO_DATE 函数对字符的转换:使用 TO_DATE 函数将字符转换成数字

查询语句例句:

SELECT TO_DATE('2019年03月29日 08:10:21','yyyy"年"mm"月"dd"日"hh:mi:ss') 
From dual;

查询结果视图:
在这里插入图片描述
个人理解

左边的字符串,对应着右边符合的日期格式,可以获取到左边的日期的数字部分,然后使用获取到的数字以其默认显示的日期格式显示结果。

以上内容部分来源于老师的教学,部分是个人的理解,难免有些理解得不是很到位。
如果有不正确的地方,还请指正。
感谢您的浏览。


http://chatgpt.dhexx.cn/article/6nKnZCr9.shtml

相关文章

numtodsinterval mysql用法_Oracle函数 - 日期函数详解

Oracle中的时间类型只有date和TIMESTAMP&#xff0c;TIMESTAMP是比date更精确的类型。日期时间函数用于处理时间类型的数据&#xff0c;Oracle以7位数字格式来存放日期数据&#xff0c;包括世纪、年、月、日、小时、分钟、秒&#xff0c;并且默认日期显式格式为“DD-MON-YY”。…

常用Oracle日期函数及聚合函数

1、常用Oracle日期函数 &#xff08;1&#xff09;CURRENT_DATE CURRENT_DATE是一个SQL标准函数&#xff0c;返回当前日期&#xff08;不带时间&#xff09;&#xff0c;可以在SELECT语句中使用。例如&#xff1a; 1 SELECT CURRENT_DATE FROM DUAL; 返回当前日期&#xff…

Oracle数据库之日期函数

今天给大家介绍一下oracle数据中的日期函数的用法。废话不多说&#xff0c;我们看一下oracle给我们提供了那些函数&#xff1f; 1.sysdate   用途&#xff1a;获取当前系统时间。 2.to_date(字符类型,日期类型) 用途&#xff1a;将字符类型转化成日期类型的函数&#xff0c;…

Oracle日期函数总结

1.日期和字符转换函数用法&#xff1a;&#xff08;to_char,to_date&#xff0c;to_namber&#xff09; 使用to_date函数将字符转换成数字。 使用to_char函数对日期的转换&#xff0c;并也可以对数字转换。 使用to_namber函数将字符转换成日期 格式&#xff1a;必须包含在单…

ORACLE之日期函数

日期函数&#xff1a; 运算规律&#xff1a; 日期数字 日期 日期-数字 日期 日期-日期 数字&#xff08;天数&#xff09; -- 查询当前日期&#xff1a; SELECT SYSDATE FROM DUAL;-- 查询一百天前的日期时间 SELECT (SYSDATE-100) FROM DUAL; -- 在指定日期上加上指定月数…

Oracle函数--日期函数

3.日期函数 months_between,add_months,next_day,last_day,round,trunc&#xff0c;sysdate sysdate关键字&#xff0c;表示系统的当前时间 select sysdate from dual; 结果&#xff1a;2022/5/4 12:38:4 select sysdate1 from dual; 当前时间加1天 结果&#xff1a;202…

Oracle 日期时间函数详解

文章目录 1 日期函数2 日期格式3 类型转换 1 日期函数 1. 常用日期函数(1) add_months(date, n) : n 个月前&#xff0c;-n 个月后(2) months_between(date1, date2) : 月份差 date1 - date22. 时区&#xff08;了解即可&#xff09;(1) select dbtimezone from dual;…

Oracle日期函数和转换函数

一、日期函数 日期函数用于处理date类型的数据&#xff0c;两个日期相减返回日期之间相差的天数。日期不允许做加法运算&#xff0c;无意义。 常见代表符号&#xff1a;yyyy 年&#xff0c;mm 月&#xff0c;dd 日&#xff0c;hh 小时&#xff0c;mi 分钟&#xff0c;ss 秒&…

Oracle 日期时间函数大全

前言 设置日期语言 alter session set NLS_DATE_LANGUAGEAMERICAN;alter session set NLS_DATE_LANGUAGESIMPLIFIED CHINESE; --也可以这样写&#xff1a;to_date(2021-06-30 15:23:45,yyyy-mm-dd hh24:mi:ss,NLS_DATE_LANGUAGEAMERICAN ) 可通过如下语句查看&#xff1a; se…

这12类Oracle日期函数,全都给你总结了

在使用Oracle数据库过程中&#xff0c;对日期的使用不可避免&#xff0c;那Oracle中的日期函数有哪些呢&#xff1f;本篇就日期函数进行整理了&#xff0c;不一定全部了解记住&#xff0c;但是要做到心中有数&#xff0c;以后在写脚本的时候就不会绕弯子了。 1、sysdate、curr…

Oracle日期函数

Oracle日期类型函数是操作日期、时间类型的相关数据&#xff0c;返回日期时间类型或数字类型结果&#xff0c;常用的函数有&#xff1a;SYSDATE()、ADD_MONTHS&#xff08;&#xff09;、LAST_DAY&#xff08;&#xff09;、TRUNC()、ROUND()等等。 系统日期、时间函数 SYSDAT…

Oracle函数——日期函数

Oracle中的时间类型只有date和TIMESTAMP&#xff0c;TIMESTAMP是比date更精确的类型。日期时间函数用于处理时间类型的数据&#xff0c;Oracle以7位数字格式来存放日期数据&#xff0c;包括世纪、年、月、日、小时、分钟、秒&#xff0c;并且默认日期显式格式为“DD-MON-YY”。…

回归问题的评价指标

回归问题的评价指标有很多&#xff0c;这里一一进行详细分类&#xff1a; 点对点误差 MSE均方误差 MSE(Mean Square Error)&#xff1a; 均方误差描述了样本真实值与预测值差方求和的平均值&#xff0c;在机器学习中&#xff0c;利用均方误差最小化优化模型的方法称…

区分回归问题和分类问题

回归问题和分类问题的区别 回归问题 用一个经典的问题来解释&#xff1a;假设你想买房子&#xff0c;手头上仅有的是之前出售的房子的占地面积大小和房子的价格&#xff0c;你想凭借手头上的这些数据来买一套不错的房子&#xff0c;那么你仅有的关于房子的信息是房子的占地大小…

LSTM回归问题

LSTM 解决回归问题时&#xff0c;出现了 model.predict() 输出的值几乎是常数值的问题&#xff0c;后来发现是因为数据没有标准化&#xff08;归一化&#xff09;&#xff0c;导致 loss 不下降&#xff0c;也就是不收敛。后来加入了数据的标准化之后&#xff0c;就可以拟合了。…

数据分析——随机森林解决回归问题

下表为训练数据集&#xff0c;特征向量只有一维&#xff0c;根据此数据表建立回归决策树。 在本数据集中&#xff0c;只有一个特征变量&#xff0c;最优切分变量自然是x。接下来考虑9个切分点{1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5}&#xff0c;根据下式计算每个待切分点的损失…

处理回归问题常见的算法

7.处理回归问题常见的算法&#xff1a; 回归属于有监督学习的一种&#xff0c;其从连续的统计数据中的到数学模型&#xff0c;然后使用生成的模型用于预测和分类。线性回归&#xff1a;给定数据集&#xff0c;其中线性回归模型通过对数据集的学习生成一个线性模型&#xff0c;…

深度学习 分类问题与回归问题

分类问题与回归问题 分类与回归 一、分类问题1.1分类性能度量&#xff1a;&#xff08;1&#xff09;准确率&#xff08;accuracy&#xff09;*&#xff08;2&#xff09;精确率&#xff08;percision&#xff09;*&#xff08;3&#xff09;召回率&#xff08;recall&#xff…

Python实现---用KNN解决回归问题

KNN用于回归问题 KNN不仅可以用于分类问题&#xff0c;也可以用回归问题。 主要算法思路就是&#xff1a;使用KNN计算某个数据点的预测值时&#xff0c;模型从训练数据集中选择离该数据点最近的k个数据点&#xff0c;并且把这些数据的y值取均值&#xff0c;把求出的这个均值作…

神经网络:DNN回归问题

2020_11_01 DNN Regression 参考资料&#xff1a;《Python深度学习》 Francois Choll 神经网络可以主要解决三大类问题&#xff1a;二分类、多分类、回归。 回归问题特点在于结果是连续值&#xff0c;因此调参过程也与分类问题相异。 在了解DNN回归问题后&#xff0c;我们…