首先要说的废话是:看完本文后大家会发现,DB2中的日期和时间处理非常简单也非常灵活!
本文中的语句都经过测试,大家可以在命令编辑器中执行以查看结果,笔者的结果集仅供参考。
1、DB2中日期、时间寄存器的使用
--取日期
SELECT CURRENT DATE FROM sysibm.sysdummy1;
--返回数据类型:DATE
--结果集(YYYY-MM-DD): 2005-12-22
--取时间
SELECT CURRENT TIME FROM sysibm.sysdummy1;
--返回数据类型:TIME
--结果集(HH-MM-SS): 10:10:21
--取时间戳记
SELECT CURRENT TIMESTAMP FROM sysibm.sysdummy1;
--返回数据类型:TIMESTAMP
--结果集(YYYY-MM-DD HH-MM-SS XXXXXX): 2005-12-22 10:10:22 187002
说明:sysibm.sysdummy1表是一个特殊的内存中的表,专门用于存储系统日期和时间。
推荐大家使用 VALUES 函数直接来进行操作。
以上的语句可以改写为:
--取日期
VALUES CURRENT DATE;
--取时间
VALUES CURRENT TIME;
--取时间戳记
VALUES CURRENT TIMESTAMP;
2、DB2中日期、时间的常用函数介绍
--取年份
VALUES YEAR(CURRENT TIMESTAMP);
--返回值:2005
--取月份
VALUES MONTH(CURRENT TIMESTAMP);
--返回值:12
--取天
VALUES DAY(CURRENT TIMESTAMP);
--返回值:22
--取星期
VALUES DAYOFWEEK(CURRENT TIMESTAMP);
--返回值:5
--说明:取值范围为1-7,1代表星期日,所以今天是星期四,得出的值为5!
VALUES DAYNAME(CURRENT TIMESTAMP);
--返回值:星期五
--取小时
VALUES HOUR(CURRENT TIMESTAMP);
--返回值:10
--取分钟
VALUES MINUTE(CURRENT TIMESTAMP);
--返回值:27
--取秒
VALUES SECOND(CURRENT TIMESTAMP);
--返回值:08
--取毫秒
VALUES MICROSECOND(CURRENT TIMESTAMP);
--返回值:890001
说明:以上函数可以直接供大家在存储过程以及自定义函数或者触发器中直接调用,所有返回类型均为 INTEGER
--取日期
VALUES DATE(CURRENT TIMESTAMP);
--返回数据类型:DATE
--返回值:2005-12-22
--取时间
VALUES TIME(CURRENT TIMESTAMP);
--返回数据类型:TIME
--返回值:10:30:48
3、DB2中日期、时间的计算
--取明年的今天
VALUES CURRENT DATE + 1 YEAR;
--返回值:2006-12-12
--取前年的今天(两种写法都合法)
VALUES CURRENT DATE - 2 YEAR;
VALUES CURRENT DATE - 2 YEARS;
--返回值:2003-12-12
--取下一个小时后的时间
VALUES CURRENT TIME + 1 HOUR;
--返回值:11:38:25
--混合应用的示例1
VALUES CURRENT DATE + 2 YEARS - 1 MONTH + 10 DAYS;
--返回值:2007-12-2(笔者的当前日期为:2005-12-22,大家可以自己计算一下)
--混合应用的示例2
VALUES CURRENT TIME + 5 HOURS - 3 MINUTES + 10 SECONDS;
--返回值:15:39:22(笔者的当前时间为:10:42:12,大家可以自己计算一下)
--计算两个日期之间的间隔天数
VALUES DAYS(CURRENT DATE) - DAYS('2005-01-01');
--返回值:355
说明:DB2中日期、时间的计算非常的灵活,大家可以根据实际需求进行自己的计算
4、DB2中日期、时间的类型转换
--将日期、时间类型转换为字符串型
VALUES CHAR(CURRENT DATE);
VALUES CHAR(CURRENT TIMESTAMP);
--将字符串型转换为日期、时间类型
VALUES TIMESTAMP ('2005-12-22-12.00.00.000000');
VALUES TIMESTAMP ('2005-12-22 12:00:00');
VALUES DATE ('2005-12-22');
VALUES DATE ('12/22/2005');--注意:该格式为(MM/DD/YYYY)
VALUES TIME ('12:00:00');
VALUES TIME ('12.00.00');
说明:在实际应用中,TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。其他的格式有兴趣的读者可以自己去发现。
--注意:DATE(2005-12-22)和DATE('2005-12-22')虽然都是合法的,但是结果不同!其实DATE(2005-12-22)等价与DATE(1971),具体原因这里就不详细讲述了。
VALUES DATE(2005-12-22)
--返回值:0006-5-25
VALUES DATE('2005-12-22')
--返回值:2005-12-22
5、DB2中日期、时间的补充说明
DAYNAME
返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,星期四)。
DAYOFWEEK
返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期日。
DAYOFWEEK_ISO
返回参数中的星期几,用范围在 1-7 的整数值表示,其中 1 代表星期一。
DAYOFYEAR
返回参数中一年中的第几天,用范围在 1-366 的整数值表示。
DAYS
返回日期的整数表示。
JULIAN_DAY
返回从公元前 4712 年 1 月 1 日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。
MIDNIGHT_SECONDS
返回午夜和参数中指定的时间值之间的秒数,用范围在 0 到 86400 之间的整数值表示。
MONTHNAME
对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January)。
TIMESTAMP_ISO
根据日期、时间或时间戳记参数而返回一个时间戳记值。
TIMESTAMP_FORMAT
从已使用字符模板解释的字符串返回时间戳记。
TIMESTAMPDIFF
根据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。
TO_CHAR
返回已用字符模板进行格式化的时间戳记的字符表示。TO_CHAR 是 VARCHAR_FORMAT 的同义词。
TO_DATE
从已使用字符模板解释过的字符串返回时间戳记。TO_DATE 是 TIMESTAMP_FORMAT 的同义词。
WEEK
返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。
WEEK_ISO
返回参数中一年的第几周,用范围在 1-53 的整数值表示。
说明:在DB2中,日期、时间的函数还有很多,上面只列举了一些常用的函数,如果这些函数不能实现读者的需求,可以自己编写自定义函数。
相信各位读者看完这篇文章之后会对DB2的时间以及日期计算有全新的认识,非常简单,没有骗你哦!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dysh61301601/archive/2008/11/05/3224007.aspx
分享到:
相关推荐
### DB2 学习笔记详解 #### 一、DB2系统架构与管理 DB2,全称为Database 2,是IBM公司开发的一款关系型数据库管理系统。它具备强大的数据处理能力和高度的安全性,广泛应用于企业级的数据管理和分析。DB2的设计...
### DB2数据库学习笔记知识点详解 #### 一、DB2系统架构及管理命令 ##### 1. DB2的层级概念 - **域**: 指的是DB2的管理范围,通常对应于一个物理服务器或者一组逻辑相关的服务器。 - **实例**: 实例是在一个操作...
8. **故障排查**:学习如何读取DB2错误消息,理解SQLSTATE和SQLCODE的含义,以及使用DB2诊断工具(如db2pd、db2trace等)进行问题定位,是提高故障处理能力的重要步骤。 9. **高级特性**:DB2支持分区、集群、复制...
【IBM DB2 笔记】是一份珍贵的学习资料,它由IBM内部员工分享,涵盖了DB2数据库系统的深度知识。DB2是IBM开发的一款关系型数据库管理系统,广泛应用于企业级的数据存储和管理。这份笔记的珍贵之处在于它揭示了IBM...
- **日期时间类型**:如DATE、TIMESTAMP。 ##### 2. 表 - **定义**:表是存储数据的基本单位,由行和列组成。 - **操作**:创建表、插入数据、查询数据等。 ##### 3. 约束 - **主键**:唯一标识表中的每一行。 - *...
这份"DB2学习笔记与总结"包含了丰富的知识内容,旨在帮助读者深入理解和掌握DB2的相关技术。以下是对其中主要知识点的详细阐述: 1. **数据库基本概念**:首先,了解数据库的基本概念至关重要,包括数据模型(如...
### IBM AIX系统管理学习笔记知识点汇总 #### 一、AIX系统概述及厂家介绍 - **IBM AIX**:AIX(Advanced Interactive Executive)是由IBM公司开发的一种基于Unix的操作系统,主要运行于IBM的Power Systems硬件平台...
本笔记将聚焦于DB2的学习,同时对比分析Oracle和MySQL两种流行数据库的分页实现,旨在帮助读者深入理解数据库分页机制。 首先,让我们了解一下分页在数据库中的重要性。在大数据量的查询场景下,一次性返回所有结果...
在学习DB2的过程中,了解其核心配置参数以及如何优化是至关重要的。以下是对标题和描述中涉及的知识点的详细解释: 1. **缓冲池问题**:缓冲池是DB2内存管理的关键组成部分,用于缓存数据和索引页,以减少磁盘I/O...
DB2 700学习笔记及试题资源是针对DB2认证考试700的备考材料,旨在帮助用户深入理解和掌握DB2的核心功能、管理、优化以及问题解决技巧。 一、DB2基础 DB2作为一款强大的数据库系统,支持SQL标准,提供了丰富的数据...
根据描述,这份资料是由个人手工制作的学习笔记,主要用于学习DB2 V9的基础知识。作者希望分享自己的学习成果,并鼓励他人下载使用。同时,作者强调了转载时需告知的要求,体现了对知识共享的尊重和支持。 综上所述...
13. **监控和日志**:了解如何启用DB2的日志功能,以及如何使用性能监控工具(如IBM Data Studio或SQL Profiler)来优化查询性能。 14. **高可用性**:如果需要高可用性和故障转移,可以考虑使用DB2集群或复制解决...
通过阅读《DB2学习笔记一(数据库管理命令)》、《DB2学习笔记二(数据操作命令)》、《DB2学习笔记(TIPS)》和《DB2学习笔记(管理工具的使用)》,深入理解和掌握每个知识点,将使你在DB2的学习之路上更加...
- `DB2函数大全.txt` 涵盖了DB2支持的各种内置函数,包括数值、字符串、日期时间、转换和系统函数等,这些函数在处理数据时非常有用。 - `DB2性能优化.txt` 可能讨论了如何通过调整查询、索引、内存设置和并发控制...
这篇学习笔记主要涵盖了在 Unix 或 Linux 操作系统上安装 DB2 的过程。以下是对笔记内容的详细解析: 首先,在开始 DB2 的安装之前,需要确保你的 Linux 机器满足 DB2 的系统需求。通常,这包括特定的操作系统版本...
DB2 Universal Database (DB2 UDB) V8.1 是IBM推出的一款企业级数据库管理系统,其管理和学习笔记主要涵盖以下几个核心知识点: 1. **实例(Instance)与数据库(Database)**: 在DB2中,一个操作系统可以运行多个实例...
从给定的“db2读书笔记”中,我们可以提炼出一系列关于DB2数据库管理系统的深入知识点,这不仅涉及了DB2的基本配置与管理命令,还深入探讨了其内部架构、数据存储策略以及性能调优技巧。以下是根据标题、描述、标签...
DB2基础认证考试的学习笔记主要聚焦于数据库规划,特别是针对DB2 11.1版本。这个教程旨在帮助备考者理解和掌握DB2的基础知识,包括产品版本、功能、工具,以及不同类型的数据应用,如在线事务处理(OLTP)、数据仓库/...
这套资料包含了每章节的内容概述、学习笔记,以及配套的试题,包括模拟题和题库,为备考DB2 701认证或提升DB2技能提供了有力支持。 首先,"DB2 701学习笔记.doc"很可能是文档形式的学习指南,它可能涵盖了DB2的基础...