`

DB2日期和时间的使用

    博客分类:
  • DB2
阅读更多

内容参考http://www.ibm.com/developerworks/cn/data/library/techarticles/0211yip/0211yip3.html

 

这篇短文是为那些刚接触 DB2 并想理解如何操作日期和时间的新手而写的。使用过其它数据库的大部分人都会很惊喜地发现在 DB2 中操作日期和时间是多么简单。

 

基础

 

要使用 SQL 获得当前的日期、时间及时间戳记,请参考适当的 DB2 寄存器:

 

SELECT current date FROM sysibm.sysdummy1
SELECT current time FROM sysibm.sysdummy1
SELECT current timestamp FROM sysibm.sysdummy1

 

sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的 DB2 寄存器的值。您也可以使用关键字 VALUES 来对寄存器或表达式求值。例如,在 DB2 命令行处理器(Command Line Processor,CLP)上,以下 SQL 语句揭示了类似信息:

 

 

VALUES current date
VALUES current time
VALUES current timestamp
 

 

在余下的示例中,我将只提供函数或表达式,而不再重复 SELECT ... FROM sysibm.sysdummy1 或使用 VALUES 子句。

要使当前时间或当前时间戳记调整到 GMT/CUT,则把当前的时间或时间戳记减去当前时区寄存器:

 

current time - current timezone
current timestamp - current timezone

 给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:

 

YEAR (current timestamp)
MONTH (current timestamp)
DAY (current timestamp)
HOUR (current timestamp)
MINUTE (current timestamp)
SECOND (current timestamp)
MICROSECOND (current timestamp)

从时间戳记单独抽取出日期和时间也非常简单:

DATE (current timestamp)
TIME (current timestamp)

  因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:

 

current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS

 要计算两个日期之间的天数,您可以对日期作减法,如下所示:

 

days (current date) - days (date('1999-10-22'))

 而以下示例描述了如何获得微秒部分归零的当前时间戳记:

 

CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS

 如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。为此,只要使用 CHAR() 函数:

 

char(current date)
char(current time)
char(current date + 12 hours)

 要将字符串转换成日期或时间值,可以使用:

 

TIMESTAMP ('2002-10-20-12.00.00.000000')
TIMESTAMP ('2002-10-20 12:00:00')
	DATE ('2002-10-20')
	DATE ('10/20/2002')
	TIME ('12:00:00')
	TIME ('12.00.00')

 TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。

 

如果你在日期函数中偶然地遗漏了引号,那将如何呢?结论是函数会工作,但结果会出错:

 

SELECT DATE(2001-09-22) FROM SYSIBM.SYSDUMMY1;

 结果是:

 

======
05/24/0006

 为什么会产生将近 2000 年的差距呢?当 DATE 函数得到了一个字符串作为输入参数的时候,它会假定这是一个有效的 DB2 日期的表示,并对其进行适当地转换。相反,当输入参数是数字类型时,函数会假定该参数值减 1 等于距离公元第一天(0001-01-01)的天数。在上面的例子中,我们的输入是 2001-09-22,被理解为 (2001-9)-22, 等于 1970 天,于是该函数被理解为 DATE(1970)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    db2日期的相关处理

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

    DB2日期函数

    ### DB2日期函数详解 #### 一、获取当前日期、时间和时间戳 DB2提供了多种方式来获取当前的...以上就是DB2日期函数的一些基本用法和注意事项,掌握这些知识可以帮助开发者更加高效地处理数据库中的日期和时间数据。

    DB2 计算相差天数(时间)

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

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

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

    db2有关日期使用小结

    ### DB2 日期功能使用详解 #### 一、获取当前日期与时间 DB2 提供了多种函数来获取系统当前的日期与时间信息。 - **`CURRENT_DATE`**:返回当前日期。 ```sql SELECT CURRENT_DATE FROM sysibm.sysdummy1; ```...

    DB2 日期数据库的sql语句

    本文将详细介绍如何在DB2数据库中使用SQL语句来获取当前日期、当前时间和当前时间戳,并展示如何计算前一天的日期。 #### 获取当前日期(Current Date) 在DB2中,`CURRENTDATE`函数可以用来获取当前系统的日期。...

    DB2 V8.2的db2ese.lic

    除了常规安装,许可证管理也是DB2日常运维的一部分。管理员可能需要监控许可证使用情况,确保不超出授权范围,或者在需要扩大规模时购买额外的许可证。在升级DB2版本时,也需要确认新的版本是否兼容当前的许可证,...

    db2维护多年的经验

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

    DB2-date-function.rar_db2 date functi

    本资料"DB2日期函数"集中总结了DB2在处理日期和时间上的经验和转换语法,对于理解和运用这些函数具有很高的参考价值。 在DB2中,日期和时间函数主要用于对日期和时间值进行计算、格式化和比较。以下是一些重要的...

    db solo注册码

    - **有效期**:本注册码有效期较长,直到2097年10月27日,意味着用户可以在很长一段时间内使用该软件而不必担心过期问题。 - **适用版本**:版本号为3.5,表明此注册码仅适用于该版本及其以下版本。如果用户将来升级...

    ORACLE DB升级性能保障利器SPA最佳实践

    - 在升级后第二天的高峰期收集统计信息,并重点关注buffer gets对比、CPU时间、执行时间、错误和不支持的情况。 5. SPA分析优化案例 - 在SPA分析任务中,通过迭代分析和实施操作来重新生成报告。 - 分析报告中...

    DB42T919-2013

    这个标准在2013年8月13日发布,并于同年12月1日开始实施,由湖北省质量技术监督局发布。标准的制定旨在规范和促进湖北省设施农业中的节水灌溉技术应用,提高水资源利用效率,保障农业生产效益。 1. **范围**: ...

    access和sql语法区别详细

    Access 使用 `Date()` 或 `Now()` 获取当前系统时间,而 SQL Server 使用 `GETDATE()`,Oracle 使用 `SYSDATE`,DB2 使用 `GetSysTimeStr`。 2. **连接字符串**: Access 中通常使用 `&` 或 `+` 进行字符串连接,...

    文华财经期货软件指标赢顺赢智睿期指标公式商品买卖指标公式源码.doc

    6. **DA和DB指标**:DA和DB分别是不同时间周期的移动平均组合,当DA线下穿DB线时,可能会出现卖出信号,标记为'★B'。 7. **止损价位**:止损价位的计算方法是根据前一天的收盘价,设置一个3.5%的小幅上浮阈值,...

    EXCEL财务知识及函数管理知识使用大全.docx

    6. **DB**和**DDB**: `DB`使用固定余额递减法计算资产的折旧,而`DDB`使用双倍余额递减法或其他指定方法。它们都是常见的折旧计算函数。 7. **DISC**、**DOLLARDE**和**DOLLARFR**: 这些函数分别用于计算债券的贴现...

    Android编程之短信列表的时间显示实例分析

    如果`fullFormat`参数为真,即使时间在同一日期内,也会显示日期和时间,确保时间的详细信息被显示出来。 这个设计兼顾了时间的清晰性和用户阅读的便利性,当时间间隔较大时,用户可以快速判断短信的日期,而当时间...

    Visual Basic 6编程技术大全 中译本扫描版带书签 2/2

    5.4.4日期和时间值的格式选项161 5.5文件的处理161 5.5.1文件的管理162 5.5.2目录的管理163 5.5.3遍历目录中的文件163 5.5.4文本文件的处理166 5.5.5 分隔文本文件的处理167 5.5.6二进制文件的处理169 5.5.7 ...

Global site tag (gtag.js) - Google Analytics