Oracle数据库-常见的日期处理

news/2025/1/16 16:09:15/文章来源:https://www.cnblogs.com/REN-Murphy/p/18340178

‌Oracle ‌Dual表 是Oracle数据库中的一个虚拟表,任何用户均可读取,经常用在没有目标表的SELECT语句块。

SELECT '马铃薯' AS NAME, 'ORACLE数据库学习' AS PROJECT FROM dual

1. 获取当前日期

SYSDATE:获取计算机操作系统的当前日期和时间,是通过sysdate函数实现的

CURRENT_DATE:获取当前会话的时区的系统日期,一般使用的是东八区的时间(比较依赖时区)

SYSTIMESTAMP:获取本机的系统时间,精确到微秒,并包含了当前时区,跟会话的时区无关

SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP FROM dual

2.TRUNC函数用于对值进行截断

用法有两种:TRUNC(NUMBER)表示截断数字,TRUNC(date)表示截断日期

1)TRUNC(number,num_digits)截断数字

其中Num_digits 用于指定取整精度的数字,Num_digits 的默认值为 0。

SELECT TRUNC(1996.1231) FROM DUAL            --1996
SELECT TRUNC(1996.1231, 1) FROM DUAL         --1996.1
SELECT TRUNC(1996.1231, -1) FROM DUAL        --1990

2)TRUNC(date)表示截断日期

--截取当前日期的零点
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'DD') AS 截取日期 FROM DUAL  --2024-08-03 10:31:00        2024-08-03 00:00:00
--截取本周第一天的零点
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'D') AS 截取日期 FROM DUAL        --2024-08-03 10:32:11        2024-07-28 00:00:00
--截取本月第一天的零点
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'MM') AS 截取日期 FROM DUAL    --2024-08-03 10:33:22        2024-08-01 00:00:00
--截取本年第一天的零点
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'Y') AS 截取日期 FROM DUAL        --2024-08-03 10:35:01        2024-01-01 00:00:00--截取到小时
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'HH') AS 截取日期 FROM DUAL    --2024-08-03 10:35:56        2024-08-03 10:00:00
--截取到分钟
SELECT SYSDATE AS 日期, TRUNC(SYSDATE, 'MI') AS 截取日期 FROM DUAL    --2024-08-03 10:38:13        2024-08-03 10:38:00

 

3.添加月份、减少月份

ADD_MONTHS 是 Oracle 数据库中的一个函数,用于在给定日期上添加或减去指定的月份数

-- 获取20240603的上个月和下个月时间
SELECT ADD_MONTHS(to_date('20240603','yyyy-MM-dd'), -1) AS 上月时间, ADD_MONTHS(to_date('20240603','yyyy-MM-dd'), 1) AS 下月时间 FROM DUAL;

扩展:获取上个月份的第一天和最后一天

SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM') AS 上月第一天, LAST_DAY(ADD_MONTHS( SYSDATE, - 1 )) AS 上月最后一天 FROM DUAL;

 

4.使用next_day和last_day

1) next_day:此函数表示从指定日期开始算,下周几是几号(因为是按照一周来算,参数超过七天报错)

select next_day(to_date('2024-06-15','yyyy-MM-dd'),2) from dual    --2024-06-17 00:00:00

2) last_day: 此函数用来计算某个月的最后一天是哪天

select last_day(to_date('2024-06-15','yyyy-MM-dd')) from dual        --2024-06-30 00:00:00

 

5. 使用to_date 和 to_char设置日期时间格式

1)to_date是将字符串转换为时间格式

select to_date('2023/11/11 12:01:14','yyyy-MM-dd HH:MI:SS') from dual

2)to_char是将日期转换为字符串格式

select to_char(sysdate, 'yyyyMMdd HH:MI:SS') from dual

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777108.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易优CMS头条文章设置与调用标签

{eyou:arclist flag=h orderby=now} <li> <a href={$field.typeurl}>{$field.typename}</a> <a href={$field.arcurl}>{$field.title}</a> </li> {/eyou:arclist}扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CM…

obsidian群晖同步方案-Mbius Sync

概述 采用Mbius Sync的原因,主要有两点原因使用obsidian的remote save 在移动端同步后,obsidian经常卡死,无法查看; remote save 配置过程种,ios设备配置的服务地址需要https ,但是家用没有ssl证书导致配置失败;群晖-obsidian-各设备之间的同步方案nas 配置Mbius Sync 1…

SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

错误记录: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared 解决方案: 由于个别空间的数据库配置问题,导致报错无法打开前后台,具体解决如下: 第一步:建议用专业的编辑器Notepad++,打开数据库配置文件 application/database.php(该文…

易优CMS模板标签videoplay视频播放

[基础用法]标签:videoplay描述:视频播放标签,用于视频模型的内容页,调用后台上传的视频。 提示:如果后台上传的视频有多个选集,可以使用【videolist 视频列表】标签,进行视频切换播放。用法: {eyou:videoplay aid=文档ID autoplay=on id=video}<video {$video.id} w…

HTML侧边部分内容滑动跟随 左侧跟随滚动模块代码

网站是左右两列板块布局,左侧规划了客服代码, 当鼠标下拉的时候, 微信客服代码会出现上移的情况。 为了提高转化,希望左侧客服模块跟随内容滚动。网站左侧跟随滚动模块 这是截止目前最简单、高效的方法, 代码简洁。代码 <div id="box"> <div id="…

宝塔/home 100%了,网站无法访问了

错误记录: 宝塔/home 100%了,网站无法访问了。报错【错误代码】 SQLSTATE【08004】【1040】Too many connections 错误原因: 宝塔/home 100% 解决方案: 宝塔界面/home满载,网站空间打不开!或者报错的问题非常普遍, 大多是网站日志占用了过多空间导致的, 大部分可以通过…

解决Maximum execution time of 120 seconds exceeded

在循环开始前加入代码://设置超时时间 ini_set("max_execution_time",18000); set_time_limit(0); set_time_limit() 当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,在脚本运行了了25秒时调用set_time_limit(20)…

网站报错 \\?\C:\Windows\inetsrv\config\applicationHost.config

错误记录: 网站报错 \\?\C:\Windows\inetsrv\config\applicationHost.config错误原因: 服务器C盘无空间 解决方案: 服务器C盘无空间,释放空间后问题解决。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascr…

磁盘IO性能分析

一、IO性能分析 1.1 IO性能、顺序访问和随机访问 如果去看硬盘厂商的性能报告,通常你会看到两个指标;一个是响应时间(Response Time); 另一个叫作数据传输率(Data Transfer Rate),数据传输率也称吞吐率。1.1.1 数据传输率 我们先来看一看后面这个指标,数据传输率。 我…

程序员的魔法石!

本文由 ChatMoney团队出品AI自己写代码,这只是传说?还是摸鱼新指南? AI出现之前,从来都是老板或产品经理提需求,程序员熬夜加班吭哧吭哧写代码或者是从Github,Stackoverflow上control+c,control+v。但随着大语言模型的发展,AI自动补全和理解意图的能力突飞猛进,不仅能…

overflow秒解外边距合并以及浮动导致的元素塌陷问题

外边距导致的合并问题: 1 处于一上一下位置的两个块级元素 在同时各自设置了上下边距时,二者间的外边距通常以 数值较大的一个作为两者间的外边距 而不是简单的数值相加 .box2{ width: 100px; height: 100px; background: deepskyblue; margin-top: 50px; …

LVS介绍

1 LVS介绍 1.1 简介 负载均衡技术有很多实现方案,有基于DNS域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于IP地址的调度方法。本文介绍基于传输层的负载均衡器LVS。 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 用…