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

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

时间:2024-08-03 10:55:48浏览次数:12  
标签:SYSDATE 00 -- 数据库 2024 日期 Oracle SELECT TRUNC

‌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

 

标签:SYSDATE,00,--,数据库,2024,日期,Oracle,SELECT,TRUNC
From: https://www.cnblogs.com/REN-Murphy/p/18340178

相关文章

  • SSM宠物托运网站8m8iz 本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,经营范围,宠物百科,上门取件,收件人信息,完成下单开题报告内容一、选题背景与意义随着宠物经济的蓬勃发展,宠物托运服务需求日益增长。然而,市场......
  • mysql数据库查询时用到的分页方法有哪些
     在处理数据库查询时,我们经常需要对结果进行分页,以便在用户界面上提供更好的浏览体验。MySQL提供了几种不同的方法来实现这一功能,其中最常见的是使用LIMIT子句。以下是三种使用LIMIT进行分页的基本方法。一、使用LIMIT子句LIMIT子句用于指定查询结果的最大记录数。它的基本语......
  • Navicat Premium(数据库管理) v17 激活版
    Navicat17全新升级,软件增强了数据库管理和数据分析的功能体验。其中包括模型设计与同步、数据字典、数据分析(dataprofiling)、用户体验、查询优化、BI功能集成MongoDB/Snowflake、专注模式、Redis哨兵模式与平台扩展LinuxARM等。此次升级让用户在数据库的创建、管理、......
  • Navicat Premium(数据库管理) v17 授权版
    Navicat17全新升级,软件增强了数据库管理和数据分析的功能体验。其中包括模型设计与同步、数据字典、数据分析(dataprofiling)、用户体验、查询优化、BI功能集成MongoDB/Snowflake、专注模式、Redis哨兵模式与平台扩展LinuxARM等。此次升级让用户在数据库的创建、管理、......
  • Milvus向量数据库备份方案
    背景向量数据库集群只有一个,如果集群出问题将影响整个业务,所以需要对向量数据库中的数据做定时备份现有两个milvus集群,方案如下通过对milvus集群的了解发现其数据的存储是集群中的minio组件,所以做的整个数据备份及恢复是基于minio来做的。首先是在需要做备份的集群中对......
  • Oracle中删除表中的重复数据
    确定重复数据:首先,你需要确定哪些记录是重复的。这通常涉及到一个或多个字段。选择保留的记录:决定在删除重复数据时保留哪个记录。这可以基于某个特定字段,例如保留具有最小或最大主键值的记录。删除重复记录:使用DELETE语句结合子查询来删除重复的记录。以下是一个示例,假设我们有......
  • JDBC实现多数据库切换
    一、编译环境JDK:1.8IDEA:2023.1.2二、maven依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!--......
  • DDL-数据库类型
       修改表结构--增加一个字段:    sql:showdatabases;--查看数据库createdatabaseitcast;--创建数据库itcasecreatedatabaseifnotexistsitcast;--如果不存在数据库itcast的话则创建itcastdropdatabaseifEXISTSitcast;--如果存在数据库itcast则......
  • 数据库 - 已成功与服务器建立连接,但在登录过程中发生错误。(提供程序:SSL提供程序,错误:0-
    今天我在写一个.NET6API时,我使用了Dapper框架配置数据库连接,配置好之后,在链接DB时出现错误,发现错误是Microsoft.Data.SqlClient引起的,使用System.Data.SqlClient就可以正常访问,错误信息如下:Aconnectionwassuccessfullyestablishedwiththeserver,butthenanerroro......
  • 达梦数据库系列—45.系统存储过程总结
    目录参数数据库表执行计划会话备份恢复数据守护归档日志SQLLOG统计信息参数查询数值类型参数值--语法格式:selectSF_GET_PARA_VALUE(scopeint,paranamevarchar(256));--SCOPE参数为1表示获取INI文件中配置参数的值--SCOPE参数为2表示获取内存中......