热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle日期时间函数详解

文章目录1日期函数2日期格式3类型转换1日期函数1.常用日期函数(1)add_months(date,n):n个月前,-n个月后(2)months_between


文章目录

  • 1 日期函数
  • 2 日期格式
  • 3 类型转换


1 日期函数

1. 常用日期函数(1) add_months(date, n) : 'n' 个月前,'-n' 个月后(2) months_between(date1, date2) : 月份差 'date1 - date2'2. 时区(了解即可)(1) select dbtimezone from dual;(2) select sessiontimezone from dual;(3) select TZ_OFFSET('PST') from dual;(4) select * from v$timezone_names; -- 时区名(5) select new_time(current_date,'PST','EST') from dual; -- 转换

示例:

select sysdate 当前时间,trunc(sysdate) 当前日期, -- 返回 date 类型trunc(sysdate, 'Q') 当前季度第一天,trunc(sysdate, 'W') 当前周第一天, -- 周日 add_months(sysdate, 2) 两个月后,add_months(sysdate, -1) 两个月前,sysdate + 3 三天后,sysdate + 10 / (24 * 60 * 10) 十秒后,months_between(date '2020-10-01', date '2020-01-01') 日期月份差,next_day(sysdate, 2) 下周第二天, -- 下周一last_day(sysdate) 本月最后一天,round(sysdate) 舍入到最接近的日期, -- 精确到天round(sysdate, 'YEAR') 舍入到最接近的年,extract(year from sysdate) 当前年, -- 返回 number 类型, 同理,月:month,日:dayextract(hour from timestamp '2020-11-17 11:22:33') 当前小时, -- 同理,分:minute,秒:secondleast(date '2020-01-01', date '2020-10-01') 返回日期列表最早的日期,greatest(date '2020-01-01', date '2020-10-01') 返回日期列表最晚的日期from dual;

2 日期格式

1. 常用日期格式 -- 不区分大小写select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') 当前时间 from dual;如: 2020-11-17 20:30:40(1) YYYY-MM-DD '年'-'月'-'日' -- 四位数-两位数-两位数(2) HH24:MI:SS '时':'分':'秒' -- HH12、HH : 均为 12 小时制2. 特别说明(1) 一周的第一天是 "周日"3. 参数设置(1) select * from nls_session_parameters; -- nls_date_language: simplified chinese(2) alter session set nls_date_language = 'AMERICAN'; -- 设置英文语言格式

示例:

select sysdate 当前时间,to_char(sysdate, 'YYYY') 四位年, -- 时、分、秒 同理to_char(sysdate, 'YY') 两位年, -- 同理还有1位和3位,用的较少(容易混淆)to_char(sysdate, 'MM') 月份,to_char(sysdate, 'MONTH') 月份带月份名, -- 若是英文语言格式,显示 novemberto_char(sysdate, 'MON') 月份带月份名简称, -- 若是英文语言格式,显示 nov (11月)to_char(sysdate, 'RM') 月份罗马数字,to_char(sysdate, 'DDD') 当年第n天,to_char(sysdate, 'DD') 当月第n天,to_char(sysdate, 'D') 当周第n天, -- 周日是第一天。day 的简称to_char(sysdate, 'DY') 星期几,to_char(sysdate, 'Q') 当年第n季度,to_char(sysdate, 'WW') 当年第n周,to_char(sysdate, 'W') 本月第n周,to_char(sysdate, 'HH24') "24小时制",to_char(sysdate, 'HH12') "12小时制" -- 默认 hh = hh12from dual;

3 类型转换

在这里插入图片描述

基础数据准备:

create table date_conversion_test (date_char varchar2(20),date_date date,date_timestamp timestamp
);insert into date_conversion_test(date_char, date_date, date_timestamp)
values(to_char(sysdate, 'YYYY-MM-DD'), sysdate, sysdate);

示例:

select to_char(t.date_date, 'YYYY-MM-DD') "date -> char",to_char(t.date_timestamp, 'YYYY-MM-DD') "timestamp -> char",to_date(t.date_char, 'YYYY-MM-DD') "char -> date",to_timestamp(t.date_char, 'YYYY-MM-DD') "char -> date"from date_conversion_test t;

推荐阅读
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文介绍了实时流协议(RTSP)的基本概念、组成部分及其与RTCP的交互过程,详细解析了客户端请求格式、服务器响应格式、常用方法分类及协议流程,并提供了SDP格式的深入解析。 ... [详细]
  • mybatis 详解(七)一对一、一对多、多对多
    mybatis详解(七)------一 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 本文介绍了如何在 Oracle 数据库中查询重复数据,并提供了多种方法来筛选和删除重复记录,包括基于单个字段和多个字段的重复数据处理。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文详细探讨了BCTF竞赛中窃密木马题目的解题策略,重点分析了该题目在漏洞挖掘与利用方面的技巧。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 本文讨论了在 Oracle 10gR2 和 Solaris 10 64-bit 环境下,从 XMLType 列中提取数据并插入到 VARCHAR2 列时遇到的性能问题,并提供了优化建议。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 近期在开发的一个项目中,预计数据量将在半年内突破千万条。为了提高查询性能,减少数据处理时间,我们决定采用Oracle数据库的分区功能。本文将详细介绍Oracle的List分区及其索引策略。 ... [详细]
author-avatar
鱼儿什么都知道丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有