



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 (, char( timestamp(2002-11-30-00.00.00)- timestamp(2002-11-08-00.00.00) 对于 ,可以使用以下各值来替代,以指出结果的时间单位: 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 的整数值表示。以星期日作为一周的开始。 DB2常用标量函数函数名 说明AVG() 返回一组数值的平均值VAR(), 返回一组数值的方差ASCII() 返回整数参数最左边的字符的ASCII码BIGINT() 返回整型常量中的数字或字符串的64位整数表示CHAR() 返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示CHR() 返回具有由参数指定的ASCII码的字符CONCAT(str1,str2) 返回两个字符串的连接YEAR() 返回数值的年部分UCASE() 返回字符串的大写TIME() 返回一个数值中的时间SUBSTR(EXP1,EXP2) 返回EXP1串自EXP2处开始的子串SECOND() 返回一个数值的秒部分RTRIM() 删除字符串尾部的空格ROUND(EXP1,EXP2) 返回EXP1小数点右边的第EXP2位置处开始的四舍五入值REPLACE(EXP1,EXP2,EXP3) 用EXP3替代EXP1中所有的EXP2REAL() 返回一个数值的单精度浮点数表示RAND() 返回0和1之间的随机浮点数POSSTR(EXP1,EXP2) 返回EXP2在EXP1中的位置MONTH() 返回一个数值的月部分MOD(EXP1,EXP2) 返回EXP1除以EXP2的余数MINUTE() 返回一个数值的分钟部分LTRIM() 删除字符串前面的空格HOUR() 返回一个数值的小时部分DB2中的限制之三字符串的限制在現實的DB2應用中大家可能經常會遇到一些錯誤,錯誤的原因是對DB2的限制不太了解而引起的,在此我簡單地總結一下,歡迎大家繼續以便和大家共享共同探討共同近步(以下主要以DB2 7.X為例)。1. CHAR 的最大長度(字節數)=2542. VARCHAR 的最大長度(字節數)=326723. LONG VARCHAR 的最大長度(字節數)=327004. CLOB 的最大長度(字節數)=21474836475. GRAPHICCHAR 的最大長度(字節數)=1276. VARGRAPHIC 的最大長度(字節數)=163367. LONG VARGRAPHIC 的最大長度(字節數)=163508. DBCLOB 的最大長度(字節數)=10737418239. BLOB 的最大長度(字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林防火知识现场培训会课件
- 安全锁定专项培训
- 梭伦改革教学课件
- 2025年互联网公司产品经理招聘面试模拟题及答题技巧
- 桥梁涵洞基本知识培训课件
- 2025年事业单位医疗岗位招聘笔试模拟题及解析
- 2025年吉林省长春市中考历史试卷(含答案与解析)
- 2025年初学会计实务操作手册与常见问题解答
- 2025年医院行政岗位招聘笔试模拟卷及答案公布
- 辽宁省瓦房店市第三高级中学2026届化学高二第一学期期中预测试题含解析
- 基于BIM技术的全过程协同与管理课件
- 《正确测量血压》课件
- 2024年学位与研究生教育工作总结
- 推广服务合同范例
- 《分红保险的魅力》课件
- 住建局条文解读新规JGJT46-2024《施工现场临时用电安全技术标准》
- 叉车装卸货合同范例
- 电力设备运行与维护管理手册
- 工程审计课程设计
- 附件2:慢病管理中心评审实施细则2024年修订版
- 食品安全制度管理目录
评论
0/150
提交评论