Oracle日期函数和转换函数

article/2025/9/26 21:35:11

一、日期函数
日期函数用于处理date类型的数据,两个日期相减返回日期之间相差的天数。日期不允许做加法运算,无意义。
常见代表符号:yyyy 年,mm 月,dd 日,hh 小时,mi 分钟,ss 秒,day 星期
默认情况下日期格式是dd-mon-yy即12-3月-19
(1)sysdate: 该函数返回系统时间
(2)months_between(m,n)日期m和日期n相差多少月数
(3)add_months(d,n)在日期d上增加n个月数
(4)next_day(d, ‘星期*’) 指定日期d下一个星期*对应的日期
(5)last_day(d):返回指定日期d所在月份的最后一天
(6)extract(month from d)从日期d上提取月份数
(7)round(d,time)日期的四舍五入
(8)trunc(d,time)日期的截断
以下是日期函数的一些例子及效果图:

各种情况例子结果
months_betweenselect months_between(‘01-9月-95’,‘11-1月-94’) from dual;19.6774193548387
add_monthsselect add_months(‘11-2月-18’,6) from dual;2018/8/11
next_dayselect next_day(‘11-2月-18’,‘星期六’) from dual;2018/2/17
last_dayselect last_day(‘11-2月-18’) from dual;2018/2/28
round 四舍五入月份 25-7月-18select round(to_date(‘25-7月-2018’),‘month’) from dual;2018/8/1
round 四舍五入年份 25-7月-18select round(to_date(‘25-7月-2018’),‘year’) from dual;2019/1/1
trunc 截断月份 25-7月-18select trunc(to_date(‘25-7月-2018’),‘month’) from dual;2018/7/1
trunc 截断年份 25-7月-18select trunc(to_date(‘25-7月-2018’),‘year’) from dual;2018/1/1

eg:查找已经入职8个月多的员工
SQL>

select * from emp
where sysdate>=add_months(hiredate,8);

在这里插入图片描述
eg:显示满10年服务年限的员工的姓名和受雇日期。
SQL>

select ename, hiredate from emp
where sysdate>=add_months(hiredate,12*10);

在这里插入图片描述
eg:对于每个员工,显示其加入公司的天数。
SQL> select floor(sysdate-hiredate),ename from emp;
在这里插入图片描述
或者
SQL> select trunc(sysdate-hiredate),ename from emp; 在这里插入图片描述
eg:找出各月倒数第3天受雇的所有员工。
SQL>

 select hiredate,ename from emp
where last_day(hiredate)-2=hiredate;

在这里插入图片描述

二、转换函数
转换函数用于将数据类型从一种转为另外一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型
我们要说的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换。
(1)to_char函数
格式: to_char(date,‘format’)
1、必须包含在单引号中而且大小写敏感。
2、可以包含任意的有效的日期格式。
3、日期之间用逗号隔开。
eg:日期是否可以显示 时/分/秒
SQL> select ename, to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp; 在这里插入图片描述
eg:薪水是否可以显示指定的货币符号
SQL> select sal,to_char(sal,'$999,999.99') from emp; 在这里插入图片描述
yy:两位数字的年份2004–>04
yyyy:四位数字的年份 2004年
mm:两位数字的月份 8月–>08
dd:两位数字的天 30号–>30
hh24: 8点–>20
hh12:8点–>08
mi、ss–>显示分钟/秒
9:显示数字,并忽略前面0
0:显示数字,如位数不足,则用0补齐
.:(小数点)在指定位置显示小数点
,:(千位符)在指定位置显示逗号
$:(美元符)在数字前加美元
L:(本地货币符)在数字前面加本地货币符号
C:(国际货币符)在数字前面加国际货币符号
eg:显示薪水的时候,把本地货币单位加在前面
SQL> select ename, to_char(sal,'L99999.99')from emp; 在这里插入图片描述
eg:显示1980年入职的所有员工
SQL> select * from emp where to_char(hiredate, 'yyyy')=1980;
在这里插入图片描述
eg:显示所有12月份入职的员工
SQL> select * from emp where to_char(hiredate, 'mm')=12; 在这里插入图片描述
这里的12和1980是数字,可以加 ’ ’ 也可以不加,因为Oracle会自动转换,但是最好加。
eg:显示姓名、hiredate和雇员开始工作日是星期几
SQL> select ename,hiredate,to_char(hiredate,'day') from emp; 在这里插入图片描述
(2)to_date函数
格式:to_date(string,‘format’)
函数to_date用于将字符串转换成date类型的数据。
eg:把字符串2015-03-18 13:13:13转换成日期格式,
SQL> select to_date('2015-03-18 13:13:13','yyyy-mm-dd hh24:mi:ss') from dual;
在这里插入图片描述
(3)to_number函数
格式:to_number(char,‘format’)
使用to_number函数将字符转换成日期。
SQL> select to_number('¥1,234,567,890.00','L999,999,999,999.99') from dual;
在这里插入图片描述


http://chatgpt.dhexx.cn/article/AsY0sCsC.shtml

相关文章

Oracle 日期时间函数大全

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

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

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

Oracle日期函数

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

Oracle函数——日期函数

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

回归问题的评价指标

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

区分回归问题和分类问题

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

LSTM回归问题

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

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

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

处理回归问题常见的算法

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

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

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

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

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

神经网络:DNN回归问题

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

机器学习实战(二)使用LightGBM的回归问题模型搭建

目录 1.导入所用的数据包 2.导入模型建立所需要的数据 3.数据集划分 4.导入训练包与交叉验证包(LGBM) 5.模型训练 6.模型验证及画图 7.画图展示模型验证情况 8.特征重要性分析 数据集链接 S. Thai, H. Thai, B. Uy, T. Ngo, M. Naser, Test Data…

Keras深度学习(4)-回归问题之预测房价

在深度学习的任务中,回归问题也是一个常见的任务。 本文将要预测 20 世纪 70 年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。本节用到的数据集与前面两个例子有一个有趣的区别。它包含的数据点相…

『迷你教程』绝对能看懂的分类问题和回归问题白话版

文章目录 内容介绍函数近似分类预测建模回归预测建模分类与回归在分类和回归问题之间转换 内容介绍 老生常谈的话题分类问题和回归问题之间有一个重要的区别。从根本上说,分类是关于预测标签,回归是关于预测数量。 我经常看到这样的问题: 如…

各类回归问题总结

回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果…

回归问题的评价指标和重要知识点总结

回归分析为许多机器学习算法提供了坚实的基础。在这篇文章中,我们将总结 10 个重要的回归问题和5个重要的回归问题的评价指标。 1、线性回归的假设是什么? 线性回归有四个假设 线性:自变量(x)和因变量(y…

深度学习3:回归问题

首先不要将回归问题和logistic回归算法混为一谈,logistic回归不是回归算法,而是分类算法。 之前的分类问题的目标是预测输入数据点所对应的单一离散的标签,而这节要预测一个连续的而不是离散的标签,比如根据气象数据预测明天的气温…

回归问题评价指标

目录 平均绝对值误差(MAE) 均方误差(MSE) 均方根误差(RMSE) 平均绝对百分比误差(MAPE) 均方误差对数(MSLE) 中位绝对误差(MedAE) R Squared 总结 回归模型: 个样本,每个样本…

stacking集成模型预测回归问题

前言 关于各种集成模型,已经有很多文章做了详细的原理介绍。本文不再赘述stacking的原理,直接通过一个案例,使用stacking集成模型预测回归问题。 本文通过学习一篇stacking继承学习预测分类问题,对其代码进行了调整,以…