oracle数据库对日期类型数据的操作很详细,日期类型数据表示形式涉及到系统时间时区,时间格式等。而且经常用到to_date('String','format'),to_char(Date,'format')等oracle系统函数。所以日期类型数据的操作有点复杂,操作oracle日期类型数据时注意的东西比较多。
1.sysdate表示当前日期,oracle数据库表示当前日期的对象。经常用到获取当前日期:select sysdate from dual;
2.to_date('String','format')函数表示把字符串转换为format格式的日期对象,这个函数功能很强大。String字符串可中有分隔符,分隔符可以是空格,/,\等除数字和字母以外的符号。但是日期和时间各自的分割符号要一样,两者的可以不一样。format格式可以有很多种,但是要包含Strring字符串的格式,否则to_date无法转换字符串为日期格式,因为缺少格式。
to_date格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
yyyy four digits 四位年 显示值:2007
Month:
mm number 两位月 显示值:11
mon abbreviated[小型的;简短的] 字符集表示 显示值:11月,若是英文版,显示nov
month spelled out 字符集表示 显示值:11月,若是英文版,显示november
Day:
dd number 当月第几天 显示值:02
ddd number 当年第几天 显示值:02 select to_date(sysdate,'dy') from dual ,
select to_date('110814 08:13:43','yy-MM-dd HH:mm:ss') from dual
dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday
ddspth spelled out, ordinal twelfth
Hour:
hh two digits 12小时进制 显示值:01
hh24 two digits 24小时进制 显示值:13
Minute:
mi two digits 60进制 显示值:45
Second:
ss two digits 60进制 显示值:25
其它
Q digit 季度 显示值:4
WW digit 当年第几周 显示值:44
W digit 当月第几周 显示值:1
24小时格式下时间范围为: 0:00:00 - 23:59:59....
12小时格式下时间范围为: 1:00:00 - 12:59:59 ....
1.获取当前日期的年,月,日,时,分,秒
select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年
select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月
select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日
select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时
select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分
select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒
2.求某天是星期几
select to_char(sysdate,'dy') from dual;
select to_char(to_date('20120323','yyyy/mm/dd'),'day') from dual
3.两个日期间的天数(oracle数据库两个日期相减获得是天数)
select floor(sysdate-to_date('20111203','yyyy-mm-dd')) from dual;
select to_char(sysdate-to_date('20111203','yyyy-mm-dd')) from dual;//返回带小数点天数
4.两个日期间的月数
select floor(months_between(sysdate,to_date('20120101','yyyy-mm-dd'))) from dual;
5.查看今年有多少天
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
6.设置日期语言
alter session set nls_date_language='simple chinese';
alter session set nls_date_language='american';
7.next_day(date,day)的用法
date表示一个日期,day表示周日到下周六,就是1-7.
select next_day(sysdate,7) from dual;//下一个周六
select next_day(sysdate,1) from dual;//下一个周日
8.yyyy与rrrr的区别
'YYYY99 TO_C
------- ----
yyyy 99 0099
rrrr 99 1999
yyyy 01 0001
rrrr 01 2001
9.不同时区的处理
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate
from dual;
AST 大西洋标准时
ADT 大西洋夏令时
BST 白令标准时
BDT 白令夏令时
CST 中央标准时
CDT 中央夏令时
EST 东部标准时
EDT 东部夏令时
GMT 格林威治平均时
HST 阿拉斯加夏威夷标准时
HDT 阿拉斯加夏威夷夏令时
MST Mountain标准时
MDT Mountain夏令时
NST 纽芬兰标准时
PST 太平洋标准时
PDT 太平洋夏令时
YST YuKon标准时
YDT YuKon夏令时
10.5秒钟一个间隔
Select TO_DATE(FLOOR(TO_CHAR(sysdate,'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS')
from dual
11.查找月的第一天,最后一天
SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,
Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,
Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,
LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month
FROM dual;
总结:oracle中没有timestamp类型的日期类型,只有date类型日期。2个日期类型数据相互减法以后获得天数。例如:MM和mm都表示月,而mm不像java里的分钟格式,所以oracle中代表分钟的格式是mi.
例如:
select (to_date('2013-8-9 00:00:00','yyyy-mm-dd hh24:mi:ss')- sysdate ) dt from dual;
sysdate:2013/8/9 13:38:21
返回-0.566388888888889,表明半天。而且是负的。表示前面的时间比后面的早。
相关推荐
Oracle 数据库总结 Oracle 数据库是甲骨文公司的一款关系数据库管理系统,是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。下面是 Oracle 数据库的总结...
这篇文档"Oracle数据库所有操作总结.doc"主要涵盖了Oracle中的查询语句和其他基本操作,对于熟悉和使用Oracle数据库非常有帮助。以下是对这些知识点的详细解释: 1. **查询语句**:基本的查询语句使用`SELECT`...
总结,Oracle数据库的学习是一个循序渐进的过程,从掌握基本的SQL语法和数据库概念,到熟悉数据库管理与优化,再到解决实际问题,都需要不断实践和积累经验。通过阅读"Oracle数据库傻瓜一千问"和深入学习相关文档,...
以下是Oracle数据库sqlplus常用命令的知识点总结: 获取数据库信息 1. 获取数据库名和创建日期:SELECT name, created, log_mode, open_mode FROM v$database; 该命令用于获取当前数据库的名称、创建日期、日志...
### ORACLE数据库学习总结 #### 一、数据库简介与安装 **1、Oracle与SQL Server比较的优点:** - **跨平台支持:** Oracle支持多种操作系统平台,如Windows、Linux、Unix等,而SQL Server主要支持Windows系统。这...
本文将根据提供的文档内容,总结和扩展Oracle数据库的基础知识点,帮助初级程序员更好地理解和掌握Oracle。 #### 一、Oracle 用户管理 1. **创建用户** - 命令格式:`CREATE USER 用户名 IDENTIFIED BY 密码;` ...
总结来说,Oracle数据库提供了丰富的数据类型和强大的权限管理功能,支持复杂的数据结构和约束,使得数据管理高效且安全。在实际应用中,理解并熟练掌握这些基础知识对于开发和管理Oracle数据库至关重要。
Oracle数据库支持多种数据类型,包括字符串、数字和日期类型。字符串类型主要有`CHAR`(固定长度)和`VARCHAR2`(可变长度)。数字类型`NUMBER(p,s)`中,p表示精度,s表示小数位数。日期类型`DATE`可以存储日期和...
Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。"scott.sql"是一个典型的Oracle数据库示例脚本,它包含了著名的"SCOTT"用户的表和相关数据,这个用户是为了教学和演示目的而...
### Oracle数据库基础笔记大纲 #### 一、数据库基础概念 ##### 1.1 什么是数据库 (Database) 数据库是一个用于组织、存储和管理数据的电子化的仓库。这些数据以一种有组织的方式存储,使得它们能够被方便地访问、...
总结来说,"Oracle数据库自动备份脚本FOR WIN.rar" 提供了一个高效、便捷的Windows环境下的Oracle数据库备份解决方案,它通过自动化的流程简化了管理任务,保障了数据安全。对于任何依赖Oracle数据库的企业来说,...
Oracle 数据库到 SqlServer 数据迁移步骤详解 Oracle 数据库到 SqlServer 的数据迁移是一项复杂的任务,需要经过多个步骤来完成。本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置...
### Oracle数据库教案03知识点详解 ...总结起来,Oracle数据库的表创建及管理涉及多种操作,包括字段类型的定义、表的创建、复制、重命名以及截断等。这些操作对于有效地管理和维护数据库至关重要。
### Oracle数据库学习知识点详解 #### 一、基本使用 ##### 1.1 常用命令 **1.1.1 Connect/Disconnect数据库连接命令** - **用途:** 连接或断开与Oracle数据库的连接。 - **语法示例:** - `sqlplus username/...
根据提供的信息,我们可以详细探讨在Linux环境中如何对Oracle数据库进行备份和恢复操作。这包括了手动备份和恢复的步骤以及如何通过脚本来自动化这一过程。 ### Linux环境下Oracle数据库备份 #### 1. 备份用户数据...
### DOS命令卸载Oracle数据库详解 #### 一、引言 在日常的IT运维工作中,我们经常需要对现有的Oracle数据库进行卸载操作。对于Windows环境下卸载Oracle数据库来说,掌握正确的卸载步骤是非常重要的,不恰当的操作...
根据给定文件内容,以下是关于Oracle数据库原理与设计的知识点总结: 首先,数据库系统的基础概念是理解Oracle数据库的前提。数据是现实世界实体的符号表示,而数据库则是组织有序、可共享、长期存储在计算机内的...
### ORACLE数据库笔试题解析及知识点总结 #### 一、选择题解析 1. **算法的执行效率与数据的存储结构无关** - **解析**: 正确选项为 **C**。算法的执行效率与数据的存储结构密切相关。例如,数组与链表在查找、...
### Oracle数据库设计——图书管理系统知识点解析 #### 一、需求分析 **背景分析:** - 图书馆规模的扩大导致图书及相关信息量急剧增长,传统人工管理方式难以应对大规模信息处理的需求,容易出现管理混乱、资源...