付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DB中操作日期和时间SQL获得当前的日期和时间与DB2中操作日期和时间默认分类2007-12-1711:51:24要使用SQL获得当前的日期、时间及时间戳记,请参考适当的DB2寄存器:SELECTcurrentdateFROMsysibm.sysdummy1SELECTcurrenttimeFROMsysibm.sysdummy1SELECTcurrenttimestampFROMsysibm.sysdummy1sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的DB2寄存器的值。您也可以使用关键字VALUES来对寄存器或表达式求值。例如,在DB2命令行处理器(C
2、ommandLineProcessor;CLP上,以下SQL语句揭示了类似信息:VALUEScurrentdateVALUEScurrenttimeVALUEScurrenttimestamp这篇短文是为那些刚接触DB2并想理解如何操作日期和时间的新手而写的。使用过其它数据库的大部分人都会很惊喜地发现在DB2中操作日期和时间是多么简单。要使用SQL获得当前的日期、时间及时间戳记,请参考适当的DB2寄存器:SELECTcurrentdateFROMsysibm.sysdummylSELECTcurrenttimeFROMsysibm.sysdummy1SELECTcurrenttimestamp
3、FROMsysibm.sysdummy1sysibm.sysdummy1表是一个特殊的内存中的表,用它可以发现如上面演示的DB2寄存器的值。您也可以使用关键字VALUES来对寄存器或表达式求值。例如,在DB2命令行处理器(CommandLineProcessor;CLP上,以下SQL语句揭示了类似信息:VALUEScurrentdateVALUEScurrenttimeVALUEScurrenttimestamp在余下的示例中,我将只提供函数或表达式,而不再重复SELECT.FROMsysibm.sysdummy1或使用VALUES子句。要使当前时间或当前时间戳记调整到GMT/CUT,则把当前
4、的时间或时间戳记减去当前时区寄存器:currenttime-currenttimezonecurrenttimestamp-currenttimezone给定了日期、时间或时间戳记,则使用适当的函数可以单独抽取出(如果适用的话)年、月、日、时、分、秒及微秒各部分:YEAR(currenttimestamp)MONTH(currenttimestamp)DAY(currenttimestamp)HOUR(currenttimestamp)MINUTE(currenttimestamp)SECOND(currenttimestamp)MICROSECOND(currenttimestamp)从时间
5、戳记单独抽取出日期和时间也非常简单:DATE(currenttimestamp)TIME(currenttimestamp)因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:currentdate+1YEARcurrentdate+3YEARS+2MONTHS+15DAYScurrenttime+5HOURS-3MINUTES+10SECONDS要计算两个日期之间的天数,您可以对日期作减法,如下所示:days(currentdate)-days(date('1999-10-22')而以下示例描述了如何获得微秒部分归零的当前时间戳记:CURRENTTIMESTAMP-
6、MICROSECOND(currenttimestamp)MICROSECONDS如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成符串。为此,只要使用CHAR()函数:char(currentdate)char(currenttime)char(currentdate+12hours)要将字符串转换成日期或时间值,可以使用:TIMESTAMP('2002-10-20-12.00.00.000000')TIMESTAMP('2002-10-2012:00:00')DATE('2002-10-20')DATE('10/20/200
7、2')TIME('12:00:00')TIME('12.00.00')TIMESTAMP()DATE()和TIME()函数接受更多种格式。上面几种格式只是示例,我将把它作为一个练习,让读者自己去发现其它格式。有时,您需要知道两个时间戳记之间的时差。为此,DB2提供了一个名为TIMESTAMPDIFF(的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有30天。以下示例描述了如何得到两个日期的近似时差:timestampdiff(<n>,char(timestamp('2002-11-30-00.00.00'
8、)-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用户定义的函数:CREATEFUNCTIONseco
9、ndsdiff(t1TIMESTAMTIMESTAMP)RETURNSINTRETURN(DAYS(t1)-DAYS(t2)*86400+(MIDNIGHT_SECONDS(t1)-MIDNIGHT_SECONDS(t2)如果需要确定给定年份是否是闰年,以下是一个很有用的SQL函数,您可以创建它来确定给定年份的天数:CREATEFUNCTIONdaysinyear(yrINT)RETURNSINTRETURN(CASE(mod(yr,400)WHEN0THEN366ELSECASE(mod(yr,4)WHEN0THENCASE(mod(yr,100)WHEN0THEN365ELSE366END
10、ELSE365ENDEND)最后,以下是一张用于日期操作的内置函数表。它旨在帮助您快速确定可能满足您要求的函数,但未提供完整的参考。有关这些函数的更多信息,请参考SQL参考大全。SQL日期和时间函数DAYNAME返回一个大小写混合的字符串,对于参数的日部分,用星期表示这一天的名称(例如,Friday)。DAYOFWEE延回参数中的星期几,用范围在1-7的整数值表示,其中1代表星期日。DAYOFWEEK_ISO!回参数中的星期几,用范围在1-7的整数值表示,其中1代表星期一。DAYOFYEARg回参数中一年中的第几天,用范围在1-366的整数值表不。DAYS返回日期的整数表示。JULIAN_DAYg回从公元前4712年1月1日(儒略日历的开始日期)到参数中指定日期值之间的天数,用整数值表示。MIDNIGHT_SECONDS!回午夜和参数中指定的时间值之间的秒数,用范围在0至U86400之间的整数值表示。MONTHNAME对于参数的月部分的月份,返回一个大小写混合的字符串(例如,January。TIMESTAMP_ISO艮据日期、时间或时间戳记参数而返回一个时间戳记值。TIMESTAMP_FORMA孰已使用字符模板解释的字符串返回时间戳记。TIMESTAMPDIFF艮据两个时间戳记之间的时差,返回由第一个参数定义的类型表示的估计时差。TO_CHAR返回已用字符模板进行格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年江苏省北师大版高三语文一轮复习现代文阅读冲刺试卷
- 2025-2026年法律援助宣传推广试题
- 知识产权代理公司绩效专员述职报告
- 《计算机网络技》 课件 第10章 大模型技术与应用
- 2026年税务申报(基础应用技巧)试题及答案
- 送料机构创新设计课程设计
- 基于SolidWorks的减速器建模与分析设计课程设计
- 机器人视觉测量课程设计课程设计
- 基于Agent的自动化测试框架技巧课程设计
- 沙漠酒店可行性研究报告
- 猎聘2026年Q3招聘调研报告
- 2025年市场监管综合执法岗《化妆品监管执法》题库附答案
- 粉煤灰供应、运输、售后服务方案
- 第1课 开启物联网之门 课件(内嵌视频)2026-2027学年人教版初中信息科技八年级全一册
- 2026年工商注册代理从业人员考核模拟试题及答案
- GB/T 16271-2025钢丝绳吊索插编索扣
- GB/T 20017-2005金属和其他无机覆盖层单位面积质量的测定重量法和化学分析法评述
- GB 16542-2010罐笼安全技术要求
- 浙医一院信息化护理管理介绍
- 2022年疟疾培训答案及试题
- 4《在民族复兴的历史丰碑上》课件-统编版高中语文选择性必修上册
评论
0/150
提交评论