网站首页 > 技术文章 正文
Oracle日期类型函数是操作日期、时间类型的相关数据,返回日期时间类型或数字类型结果,常用的函数有:SYSDATE()、ADD_MONTHS()、LAST_DAY()、TRUNC()、ROUND()等等。
系统日期、时间函数:
SYSDATE函数:该函数没有参数,可以得到系统的当前时间,案例代码:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
结果:
SYSTIMESTAMP函数:该函数没有参数,可以得到系统的当前时间,该时间包含时区信息,精确到微秒。案例代码:
select systimestamp from dual;
结果:
数据库时区函数:
DBTIMEZONE函数:该函数没有输入参数,返回数据库时区。案例代码:
select dbtimezone from dual;
结果:
给日期加上指定的月份函数:
ADD_MONTHS(r,n)函数:该函数返回在指定日期r上加上一个月份数n后的日期。其中
r:指定的日期。
n:要增加的月份数,如果N为负数,则表示减去的月份数。
案例代码:
select to_char(add_months(to_date('2018-11-12','yyyy-mm-dd'),1),'yyyy-mm-dd'), to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'), to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd') from dual;
结果:(如果指定的日期是月份的最后一天,返回的也是新的月份的最后一天,如果新的月份比指定的月份日期少,将会自动调回有效日期)
月份最后一天函数:
LAST_DAY(r)函数:返回指定r日期的当前月份的最后一天日期。案例代码:
select last_day(sysdate) from dual;
结果:
指定日期后一周的日期函数:
NEXT_DAY(r,c)函数:返回指定R日期的后一周的与r日期字符(c:表示星期几)对应的日期。案例代码:
select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;
结果:
返回指定日期中特定部分的函数:
EXTRACT(time)函数:返回指定time时间当中的年、月、日、分等日期部分。案例代码:
select extract( year from timestamp '2018-11-12 15:36:01') as year, extract( month from timestamp '2018-11-12 15:36:01') as month, extract( day from timestamp '2018-11-12 15:36:01') as day, extract( minute from timestamp '2018-11-12 15:36:01') as minute, extract( second from timestamp '2018-11-12 15:36:01') as second from dual;
结果:
返回两个日期间的月份数:
MONTHS_BETWEEN(r1,r2)函数:该函数返回r1日期和r2日期直接的月份。当r1>r2时,返回的是正数,假如r1和r2是不同月的同一天,则返回的是整数,否则返回的小数。当r1<r2时,返回的是负数。案例代码:
select months_between(to_date('2018-11-12', 'yyyy-mm-dd'), to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数 months_between(to_date('2018-11-12', 'yyyy-mm-dd'), to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数 months_between(to_date('2017-11-12', 'yyyy-mm-dd'), to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数 from dual;
结果:
日期截取函数:
ROUND(r[,f])函数:将日期r按f的格式进行四舍五入。如果f不填,则四舍五入到最近的一天。案例代码:
select sysdate, --当前时间 round(sysdate, 'yyyy') as year, --按年 round(sysdate, 'mm') as month, --按月 round(sysdate, 'dd') as day, --按天 round(sysdate) as mr_day, --默认不填按天 round(sysdate, 'hh24') as hour --按小时 from dual;
结果:
TRUNC(r[,f])函数:将日期r按f的格式进行截取。如果f不填,则截取到当前的日期。案例代码:
select sysdate, --当前时间 trunc(sysdate, 'yyyy') as year, --按年 trunc(sysdate, 'mm') as month, --按月 trunc(sysdate, 'dd') as day, --按天 trunc(sysdate) as mr_day, --默认不填按天 trunc(sysdate, 'hh24') as hour --按小时 from dual;
结果:
猜你喜欢
- 2024-10-20 1 小时 SQL 极速入门(三)——分析函数
- 2024-10-20 oracle中常用的一些函数,巧用函数,减少代码量
- 2024-10-20 Oracle常用系统函数-日期和时间类函数
- 2024-10-20 oracle 函数decode用法 oracle的decode方法
- 2024-10-20 数据库笔试面试5——在Oracle中,函数的描述正确的是
- 2024-10-20 ORACLE 取两张表差值函数 minus oracle查询两个表中相同数据
- 2024-10-20 Oracle行转列、列转行函数 oracle12c行转列函数
- 2024-10-20 用ORACLE分析函数decode实现行列转换
- 2024-10-20 2周零基础搞定SQL——窗口函数 sql 窗口函数执行顺序
- 2024-10-20 Oracle数据库中几种非常有用的函数(with……as等)
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)