`
guoyanxi
  • 浏览: 274618 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DB2 日期 时间

    博客分类:
  • db2
 
阅读更多
/***********************************************************************
--IBM DB2学习笔记-1:日期以及时间的使用
--彭建军
--2005-12-22 9:56
--测试环境:DB2 UDB V8.2
--适用于 IBM DB2 UDB for Linux、UNIX 和 Windows
--说明:本文介绍了DB2日期以及时间的绝大部分应用
--欢迎转载,但请注明出处。
***********************************************************************/

首先要说的废话是:看完本文后大家会发现,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的时间以及日期计算有全新的认识,非常简单,没有骗你哦!

感谢IBM 工程师 Paul Yi,是您的文章让我获益匪浅。
分享到:
评论
1 楼 znttql 2012-04-09  
    整理的太好了 非常感谢啊

相关推荐

    DB2 日期数据库的sql语句

    对于开发人员来说,能够准确地获取和操作日期时间数据至关重要。本文将详细介绍如何在DB2数据库中使用SQL语句来获取当前日期、当前时间和当前时间戳,并展示如何计算前一天的日期。 #### 获取当前日期(Current ...

    DB2 基础 日期和时间的使用.pdf

    本文详细介绍了在DB2中如何操作日期和时间的基础知识,包括获取当前日期和时间、调整时间至GMT、抽取日期和时间的各个组件、进行日期和时间的计算以及日期和时间值与文本之间的相互转换。掌握了这些基本操作后,用户...

    DB2 基础_ 日期和时间的使用

    ### DB2 中日期和时间的基础使用 #### 一、引言 DB2 是 IBM 开发的一款功能强大的关系型数据库管理系统,被广泛应用于企业级数据管理领域。对于刚刚接触 DB2 的用户来说,理解和掌握日期与时间的操作是非常重要的,...

    db2日期的相关处理

    本文主要介绍了DB2 日期处理的基础知识,包括获取当前日期、时间、时间戳记,日期、时间、时间戳记的提取和计算,日期、时间、时间戳记的操作和比较等。 一、获取当前日期、时间、时间戳记 在 DB2 中,可以使用 ...

    db2有关日期使用小结

    本文档详细介绍了DB2 中关于日期的一些基本用法,包括如何获取当前日期、时间、日期的各个组成部分以及如何计算特定日期等。通过对这些基础功能的掌握,可以帮助数据库开发者更高效地管理和操作数据。在实际应用中,...

    DB2 基础日期函数.doc

    DB2 数据库系统提供了丰富的日期和时间处理功能,使得开发者能够轻松地进行日期运算和时间管理。这篇文档主要介绍了DB2中的基础日期函数,适用于初次接触DB2的用户。 首先,获取当前日期、时间和时间戳非常直观。...

    DB2 计算相差天数(时间)

    DB2 计算相差天数(时间),打个比方你要计算2013-10-20到2014-03-01的天数

    DB2 基础:日期和时间的使用 (1).rar_db2

    在DB2中,日期和时间数据类型用于存储和操作各种时间相关的信息,如日期、时间、日期时间以及间隔等。以下是一些关键知识点: 1. **日期和时间数据类型**: - DATE:存储从公元1 AD到9999 AD的日期,格式为YYYY-MM...

    DB2 日期和时间的函数应用说明

    DB2数据库系统提供了丰富的日期和时间处理函数,使得在数据库查询和操作中处理日期和时间数据变得方便。本文主要介绍了DB2中与日期和时间相关的若干核心函数及其应用。 1. DAYNAME 函数:该函数返回一个表示星期的...

    db2详解db2详解

    1. **数据类型与表结构**:DB2支持多种数据类型,包括数值型(如整数、浮点数)、字符串型(如VARCHAR、CHAR)、日期/时间型(如DATE、TIMESTAMP)等。创建表时,需要定义字段名、数据类型、长度和约束条件,如主键...

    个人搜集的db2相关的资料

    3. **日期时间**:在DB2中,日期和时间数据类型包括DATE、TIME、TIMESTAMP等,它们分别用于存储日期、时间以及日期和时间组合。DB2还提供了日期和时间函数,如CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP等,...

    DB2各类函数总汇

    DB2 函数可以分为九大类:聚合函数、类型转换函数、数学函数、字符串函数、日期时间函数、XML 函数、分区函数、安全函数和其他函数。 一、聚合函数 聚合函数是指对表中的数据进行聚合操作的函数,常用的聚合函数...

    db2,oracle函数大全合集

    3. **日期/时间函数**:如`SYSDATE`, `ADD_MONTHS()`, `EXTRACT()`, 用于日期时间处理。 4. **字符串函数**:`SUBSTR()`, `INSTR()`, `CONCAT()`, 用于字符串操作。 5. **聚合函数**:与DB2类似,提供`COUNT()`, `...

    db2维护多年的经验

    DB2提供了丰富的日期和时间函数,用于处理和操作日期时间数据。以下是一些核心函数及其应用: - **DAYNAME**: 返回日期中星期的名称,如“Monday”、“Tuesday”等。 - **DAYOFWEEK** 和 **DAYOFWEEK_ISO**: 分别...

    DB2日期和时间的使用

    本文将详细介绍如何在DB2中获取当前日期、时间以及时间戳,并介绍如何进行日期和时间的提取、计算以及格式转换等高级操作。 #### 二、基础操作 在DB2中,可以通过以下方式获取当前的日期、时间和时间戳: - **获取...

    oracle和db2的区别

    - `SYSDATE`是一个预定义的伪列,返回当前系统的日期和时间。 - **DB2**: - 使用`SELECT CURRENT_TIMESTAMP FROM SYSIBM.SYS_DUMMY1;` - `CURRENT_TIMESTAMP`函数返回当前的时间戳。 #### 3. 空值处理 - **...

    DB2官方中文参考手册1

    8. **DB2Globalization-db2nlsc1010.pdf** - 关于DB2的全球化支持,详细讨论了多语言环境下的数据库操作,包括字符集、排序规则、日期时间格式等。 9. **DB2DataMovement-db2dmc1010.pdf** - 数据迁移和复制是...

    DB2到GreenPlum/PostgreSQL的转换指南

    - **日期时间类型**: DB2有`DATE`、`TIME`、`TIMESTAMP`等类型,而GreenPlum/PostgreSQL也有类似的数据类型支持。 对于每种数据类型,都需要仔细检查其长度限制、精度设置等方面,以确保在迁移后仍能正确处理数据。...

    DB2学习资料(包括DB2学习文档、常用指令、优化和技巧等)

    "DB2日期和时间应用.doc"详细介绍了DB2中处理日期和时间类型的方法,这是处理时间序列数据时经常遇到的问题。"DB2离线和在线全备、增量备份及恢复的操作步骤.doc"提供了备份和恢复策略,确保数据安全性和业务连续性...

Global site tag (gtag.js) - Google Analytics