`

开发指南 第四章日期和时间的存储和处理

 
阅读更多

第四章日期和时间的存储和处理
select to_char(12345.67,'$99,999.999') from dual;
$12,345.670

select translate('wang','w','z') from dual;
zang

select replace('appleorange','app','wang') from dual;
wangleorange

SELECT TO_NUMBER('-$12,345.67','$99,999.99')  from dual;
-12345.67

create table wang(
times date);
select * from wang;
还可以使用DATE关键字向数据库提供一个日期文本字符串,此时日期必须使用ANSI标准格式YYYY-MM-DD.
insert into wang values(date'1988-12-10');

insert into wang values('05-Feb-2008');
insert into wang values('04/June/2008');
insert into wang values(sysdate);

select to_char(times,'mm-rr-yyyy') from wang;
select to_char(times,'MONTH DD,YYYY') from wang;
数据库参数NLS_DATE_FORMAT指定了默认的日期格式。
select to_date('July 4,2003','MONTH DD,YYYY') FROM dual;
select to_date('7.4.06','MM.DD.YY') FROM dual;
TO_CHAR()和TO_DATE函数可以组合使用。


4.5使用时间值函数
add_months(x,y)函数计算x加上y个月的结果:
select add_months('01-JAN-2005',1) from dual;
2/1/2005

select add_months('01-JAN-2005',-1) from dual;
12/1/2004
add_months()函数可以用于时间和日期。
4.5.2 LAST_DAY()函数
LAST_DAY()函数用于计算包含x的月的最后一天。
select last_day('01-JAN-2005') from dual;
1/31/2005
4.5.3 MONTHS_BETWEEN(x,y)
MONTHS_BETWEEN(x,y)函数用于计算x和y之间有几个月。如果x在日历中比y早,那么MONTHS_BETWEEN()函数就返回一个负数。

4.5.4 next_day(x,day)函数
next_day(x,day)函数用于计算从x开始,下一个day的日期;参数day是一个文本字符串,例如Saturday.
select next_day('25-may-2010','saturday') from dual;
5/29/2010
4.5.5 ROUND()函数
ROUND(x[,unit])函数用于对x进行取整。默认情况下,x取整为最近的一天。Unit是一个可选字符串参数,它指明要取整的单元。例如,YYYY表示将x取整为最近一年的第一天。
select round(to_date('25-OCT-2005'),'yyyy')from dual;
1/1/2006


select round(to_date('25-OCT-2005'),'mm')from dual;
11/1/2005
select round(to_date('25-OCT-2005 19:45:06','dd--mon-yyyy hh24:mi:ss'),'HH24')from dual;
10/25/2005 8:00:00 PM
4.5.7 TRUNC()函数
TRUNC(x,unit)函数用于对x进行截断。默认情况下,截断为当天的开始时间。
select trunc(to_date('25-may-2010'),'yyyy')from dual;
1/1/2010
select trunc(to_date('25-may-2010'),'mm')from dual;
5/1/2010
select to_char(trunc(to_date('25-OCT-2005 19:45:06','dd--mon-yyyy hh24:mi:ss'),'HH24'),'dd--mon-yyyy hh24:mi:ss') from dual;
25--oct-2005 19:00:00
4.6理解时区
UTC坐标通用时间
时区可以使用与UTC(Coordinated Universal Time)的时差来表示,也可以使用时区名来表示。在指定时差时,可以使用HH:MI格式,前面有一个加号或减号前缀:
+|-HH:MI
其中
+或-符号符号表示从UTC增加或减少几个时差
HH:MI表示该时区的小时和分钟
时区也可以使用时区名指定。例如,PST表示太平洋标准时间(Pacific Standard Time)
EST(Eastern Standard Time)表示东部标准时间
数据库的时区称为数据库时区(database time zone),数据库会话的时区设置称为会话时区(session time zone)
数据库时区是由数据库参数TIME_ZONE控制的;DBA可以在数据库的init.ora或spfile.ora文件中修改TIME_ZONE参数的设置。
Sysdate()函数来查看数据库所在的操作系统的日期设置,这个函数可以得到数据库时区中的日期。
CURRENT_DATE()函数可以用于查看会话时区中的日期。
4.6.3获取时区的时差
Select TZ_OFFSET(‘PST’) FROM DUAL;
4.6.4获取时区名
SELECT * FROM V$TIMEZONE_NAMES ;
4.6.5将时间值从一个时区转换为另一个时区
NEW_TIME()
4.7使用时间戳
4.7.1使用TIMESTAMP类型
使用TIMESTAMP类型
create table pp(pid timestamp(4));
insert into pp values(timestamp '2005-05-13 07:15:31.12345');
使用TIMESTAMP WITH ZONE类型
create table pp(pid timestamp(4)with time zone);
insert into pp values(timestamp '2005-05-13 07:15:31.12345 -07:00');
4.8使用时间间隔
4.8.1使用INTERVAL YEAR TO MONTH类型
create table pp(dur interval year(3) to month);
insert into pp values(interval '1' year);
insert into pp values(interval '11' month);
insert into pp values(interval '14' month);
insert into pp values(interval '1-3' year to month);
insert into pp values(interval '0-5' year to month);
insert into pp values(interval '123' year(3));
select * from pp;
+01-00
+00-11
+00-11
+01-03
+00-05
+123-00

4.82.使用interval da to secondy类型
create table pp(dur interval day(3) to second (4));
insert into pp values(interval '3' day);
insert into pp values(interval '2' hour);
insert into pp values(interval '25' minute);
insert into pp values(interval '45' second);
insert into pp values(interval '3 2:25' day to minute);
insert into pp values(interval '3 2:25:33' day to second);
insert into pp values(interval '23 2:25:33' day to second);
insert into pp values(interval '123 2:25:33.12' day(3) to second(2));
select * from pp;
+03 00:00:00.000000
+00 02:00:00.000000
+00 00:25:00.000000
+00 00:00:45.000000
+03 02:25:00.000000
+03 02:25:33.000000
+23 02:25:33.000000
+123 02:25:33.120000

分享到:
评论

相关推荐

    Boost程序库完全开发指南

    8. **日期时间**(Date_Time):Boost.Date_Time库提供了处理日期和时间的类和函数,支持国际化和本地化。 9. **序列化**(Serialization):Boost.Serialization库能够将对象序列化到文件或内存中,便于持久化和跨...

    boost程序库完全开发指南深入c++准标准库第3版-第14章

    5. **Boost.DateTime**:提供了日期和时间的处理,包括日期运算、时间间隔、日期时间格式化和解析等功能,是处理时间相关问题的强大工具。 6. **Boost.Serialization**:该库允许将对象序列化到文件或流中,以便于...

    Framework 开发指南.docx

    第四章“开发Web应用程序”会讲解ASP.NET,包括MVC(模型-视图-控制器)框架、WebAPI等,以及网页交互和服务器端逻辑。 第五章“开发面向服务的应用程序”可能涉及SOAP和RESTful服务,以及WCF(Windows ...

    Boost程序库完全开发指南-深入C++“准”标准库高清版

    此外,Boost还提供了智能指针、正则表达式、日期时间处理、文件系统操作等多种实用工具,极大地丰富了C++的标准库。 在本书中,作者罗剑锋详细介绍了Boost库中的各个组件,通过实例演示了如何在实际项目中使用这些...

    PostgreSQL开发指南

    第四至六章主要关注数据存储和维护。如何创建、修改和删除数据表是日常数据库管理的基础。表空间管理则涉及数据文件的物理存储位置,确保数据的高效存储和备份。备份与恢复是数据库管理的关键环节,通过合理规划备份...

    freemark开发指南详解

    以下是对FreeMarker开发指南中涉及的一些关键知识点的详细解释: 1. **基础概念**: - **Scalars**:存储单一值的数据类型,如字符串、数字、日期和布尔值。 - **Hashes**:存储键值对的容器,用于组织和检索数据...

    Boost程序库完全开发指南_第三版

    《Boost程序库完全开发指南_第三版》是C++开发者的重要参考资料,专注于介绍Boost库的使用和开发。Boost库是一个广泛被采纳的开源C++库集合,它为标准模板库(STL)提供了扩展,同时也包含了许多现代编程技术,如...

    第二十章 RTC实时时钟实验STM32F4开发指南正点原子探索者STM32开发板.pdf

    本资源为 STM32F4 开发指南,主要介绍了 STM32F4 的实时时钟(RTC)实验,包括硬件设计、软件设计和下载验证等部分。RTC 是一个独立的 BCD 定时器/计数器,提供日历时钟、闹钟和自动唤醒单元等功能。本章还介绍了 ...

    web组建开发指南

    ### WEB组件开发指南 #### 一、前言 1. **概述**: - 本文档旨在为开发者提供一套全面的指南,以便更好地理解和运用Web组件进行开发工作。 - Web组件是现代Web开发中不可或缺的一部分,它们允许开发者创建可重用...

    SQL权威指南 第4版

    第四版不仅涵盖了前几版的经典内容,还与时俱进地更新了许多新的SQL标准和技术。 本书主要知识点包括但不限于: 1. **SQL基础**:讲解了SQL的基本语法,如数据定义(DDL)、数据操作(DML)和数据查询(DQL),...

    最强HiveSQL开发指南.pdf

    《最强HiveSQL开发指南》是一本专注于Hive性能调优和实战操作的教程,旨在帮助读者深入理解和熟练运用Hive进行大数据处理。Hive作为Apache Hadoop生态系统中的一个组件,主要用于处理和分析大规模分布式存储的数据。...

    boost程序库完全开发指南深入c++准标准库第3版-第9章

    2. **Boost.DateTime**:提供日期和时间处理功能,支持日期运算、时间间隔计算和时间格式化。 3. **Boost.Asio**:这是一个异步I/O库,用于网络编程,支持多种协议,如TCP、UDP,以及线程和定时器功能。 4. **...

    Actionscript3.0开发人员指南

    以上这些知识点只是《Actionscript3.0开发人员指南》中的冰山一角,涵盖了日期和时间管理、字符串处理以及数组操作等基础但重要的主题。这些技能对于任何想要深入了解 Actionscript 3.0 的开发者来说都是非常宝贵的...

    ActionScript3.0开发人员指南

    #### 第4章 处理错误 在软件开发中,错误处理是确保程序稳定性和用户体验的重要环节。本章详尽地介绍了AS3中的错误处理机制,从基础知识到高级主题。 - **错误处理基础知识**:解释错误处理的基本原则,包括为什么...

    boost程序库完全开发指南深入c++准标准库第3版-第5章

    5. **其他关键库**:Boost库中还有许多其他重要的组件,比如`signals2`(信号槽机制)、`date_time`(日期和时间处理)、`graph`(图论库)、`lambda`(函数式编程工具)等,这些库都极大地丰富了C++的功能和应用...

    君正Linux_开发指南.pdf

    - **文档版本**: 本指南为君正Linux开发指南的第0.3版,发布日期为2010年1月。 - **版权信息**: 版权归北京君正集成电路有限公司所有,版权所有期为2005年至2009年。 - **文档变更记录**: - 2010.01.11 (0.3): 添加...

    4 应用开发者指南_1.pdf

    第四章应用开发者指南对这些知识点进行了详细的介绍,以下是本章中所包含的关键技术知识点: 1. 数据库基本使用:包括对数据类型、操作符和数据库对象类型的了解。在PostgreSQL中,数据类型决定了数据的存储格式和...

Global site tag (gtag.js) - Google Analytics