`

DB2中有关日期和时间的函数

 
阅读更多
DAYNAME         返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。   
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 的整数值表示。

要使当前时间或当前时间戳记调整到 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)  

因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:  
current date + 1 YEAR  
current date + 3 YEARS + 2 MONTHS + 15 DAYS  
current time + 5 HOURS - 3 MINUTES + 10 SECONDS 

从时间戳记单独抽取出日期和时间也非常简单:  
DATE (current timestamp)  
TIME (current timestamp)

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

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() 函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。  

有时,您需要知道两个时间戳记之间的时差。为此,DB2 提供了一个名为 TIMESTAMPDIFF() 的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有 30 天。以下示例描述了如何得到两个日期的近似时差:  

timestampdiff (<n>, char(  
timestamp('2002-11-30-00.00.00')-  
timestamp('2002-11-08-00.00.00')))  

对于 <n>,可以使用以下各值来替代,以指出结果的时间单位:  

1 = 秒的小数部分   
2 = 秒   
4 = 分   
8 = 时   
16 = 天   
32 = 周   
64 = 月   
128 = 季度   
256 = 年   
当日期很接近时使用 timestampdiff() 比日期相差很大时精确。如果需要进行更精确的计算,可以使用以下方法来确定时差(按秒计):  

(DAYS(t1) - DAYS(t2)) * 86400 +    
(MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2))  

为方便起见,还可以对上面的方法创建 SQL 用户定义的函数:  

CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP)  
RETURNS INT  
RETURN (  
(DAYS(t1) - DAYS(t2)) * 86400 +    
(MIDNIGHT_SECONDS(t1) - MIDNIGHT_SECONDS(t2))  
)  
@  

如果需要确定给定年份是否是闰年,以下是一个很有用的 SQL 函数,您可以创建它来确定给定年份的天数:  

CREATE FUNCTION daysinyear(yr INT)  
RETURNS INT  
RETURN (CASE (mod(yr, 400)) WHEN 0 THEN 366 ELSE   
        CASE (mod(yr, 4))   WHEN 0 THEN   
        CASE (mod(yr, 100)) WHEN 0 THEN 365 ELSE 366 END   
        ELSE 365 END  
END)@  

最后,以下是一张用于日期操作的内置函数表。它旨在帮助您快速确定可能满足您要求的函数,但未提供完整的参考。有关这些函数的更多信息,请参考 SQL 参考大全。  

SQL 日期和时间函数   
DAYNAME 返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。   
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各类函数的分类总汇文档 1. 聚合函数 2. 类型转换函数 3. 数学函数 4. 字符串函数 5. 日期时间函数 6. XML 函数 7. 分区函数 8. 安全函数 9. 其他

    DB2 日期数据库的sql语句

    自己总结的关于 db2数据库当前日期和前一天日期的sql语句

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

    DB2中有关日期和时间的函数,及应用,比较老的文章了,需要的朋友可以参考下。

    db2日期的相关处理

    这是一个db2日期处理相关的word。有具体的例子和一些函数等。

    PHP函数参考手册大全

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. dBase Functions XXV. DBM Functions [deprecated] XXVI. dbx Functions XXVII. Direct IO Functions XXVIII. Directory 目录函数 XXIX. DOM Functions XXX....

    程序员的SQL金典6-8

     5.3 日期时间函数  5.3.1 日期、时间、日期时间与时间戳  5.3.2 主流数据库系统中日期时间类型的表示方式  5.3.3 取得当前日期时间  5.3.4 日期增减  5.3.5 计算日期差额  5.3.6 计算一个日期是星期几  ...

    程序员的SQL金典7-8

     5.3 日期时间函数  5.3.1 日期、时间、日期时间与时间戳  5.3.2 主流数据库系统中日期时间类型的表示方式  5.3.3 取得当前日期时间  5.3.4 日期增减  5.3.5 计算日期差额  5.3.6 计算一个日期是星期几  ...

    程序员的SQL金典.rar

     5.3 日期时间函数  5.3.1 日期、时间、日期时间与时间戳  5.3.2 主流数据库系统中日期时间类型的表示方式  5.3.3 取得当前日期时间  5.3.4 日期增减  5.3.5 计算日期差额  5.3.6 计算一个日期是星期几  ...

    程序员的SQL金典4-8

     5.3 日期时间函数  5.3.1 日期、时间、日期时间与时间戳  5.3.2 主流数据库系统中日期时间类型的表示方式  5.3.3 取得当前日期时间  5.3.4 日期增减  5.3.5 计算日期差额  5.3.6 计算一个日期是星期几  ...

    程序员的SQL金典3-8

     5.3 日期时间函数  5.3.1 日期、时间、日期时间与时间戳  5.3.2 主流数据库系统中日期时间类型的表示方式  5.3.3 取得当前日期时间  5.3.4 日期增减  5.3.5 计算日期差额  5.3.6 计算一个日期是星期几  ...

    sql语句中如何将datetime格式的日期转换为yy-mm-dd格式

    您可能感兴趣的文章:将WMI中的DateTime类型转换成VBS时间的函数代码LINQ字符串向datetime 转换时失败的处理方法时间字符串转换成日期对象datetime的方法Sql中将datetime转换成字符串的方法(CONVERT)Python中实现对...

    PHP5 完整官方 中文教程

    Date/Time — Date/Time 日期/时间函数 DB++ — DB++ Functions dba — Database (dbm-style) Abstraction Layer Functions dBase — dBase Functions DBM — DBM Functions [deprecated] dbx — dbx Functions ...

    PHP5中文参考手册

    Date/Time — Date/Time 日期/时间函数 DB++ — DB++ Functions dba — Database (dbm-style) Abstraction Layer Functions dBase — dBase Functions DBM — DBM Functions [deprecated] dbx — dbx Functions ...

    神通数据库-数据库快速入门.pdf

    置函数主要包括:数学函数、字符串函数、日期时间函数、类型转换函数聚集函数等。 • 支持视图 神通数据库对数据视图提供了完善的支持,从而允许不同的用户或应用程序以不同的方式查看同一数 据。该项功能不仅使数据...

    PHP5 开发手册 简体中文手册

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. Database (dbm-style) Abstraction Layer Functions XXV. dBase Functions XXVI. DBM Functions [deprecated] XXVII. dbx Functions XXVIII. Direct IO ...

    php帮助文档,php。chm,php必备的中文手册

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. Database (dbm-style) Abstraction Layer Functions XXV. dBase Functions XXVI. DBM Functions [deprecated] XXVII. dbx Functions XXVIII. Direct IO ...

    中文版PHP使用手册

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. dBase Functions XXV. DBM Functions [deprecated] XXVI. dbx Functions XXVII. Direct IO Functions XXVIII. Directory 目录函数 XXIX. DOM Functions XXX....

    php手册PHP5研究室编无乱码版本chm

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. dBase Functions XXV. DBM Functions [deprecated] XXVI. dbx Functions XXVII. Direct IO Functions XXVIII. Directory 目录函数 XXIX. DOM ...

    PHP手册(带评论版-2008-03-14).part2.rar

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. dBase Functions XXV. DBM Functions [deprecated] XXVI. dbx Functions XXVII. Direct IO Functions XXVIII. Directory 目录函数 XXIX. DOM Functions XXX....

    经典收藏最全php5.0查询手册

    Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. dBase Functions XXV. DBM Functions [deprecated] XXVI. dbx Functions XXVII. Direct IO Functions XXVIII. Directory 目录函数 XXIX. DOM Functions XXX....

Global site tag (gtag.js) - Google Analytics