设为首页 收藏本站
查看: 1087|回复: 0

[经验分享] DB2日期及时间的使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-19 02:49:32 | 显示全部楼层 |阅读模式
  1、DB2中日期、时间寄存器的使用
  
--取日期
SELECT CURRENT DATE FROM sysibm.sysdummy1;
  --返回数据类型:DATE
  --结果集(YYYY-MM-DD): 2013-12-11



--取时间
SELECT CURRENT TIME FROM sysibm.sysdummy1;
  --返回数据类型:TIME
  --结果集(HH-MM-SS): 21:06:53



--取时间戳记
SELECT CURRENT TIMESTAMP FROM sysibm.sysdummy1;
  --返回数据类型:TIMESTAMP
  --结果集(YYYY-MM-DD HH-MM-SS XXXXXX): 2013-12-11-21.08.16.000072
  说明:
  sysibm.sysdummy1表是一个特殊的内存中的表,专门用于存储系统日期和时间。
  推荐大家使用 VALUES 函数直接来进行操作。
  以上的语句可以改写为:
  --取日期 VALUES CURRENT DATE;
  --取时间 VALUES CURRENT TIME;
  --取时间戳记 VALUES CURRENT TIMESTAMP;
  2、DB2中日期时间的常用函数

  --取年份 VALUES YEAR(CURRENT TIMESTAMP);
  --返回值:2013
  --取月份 VALUES MONTH(CURRENT TIMESTAMP);
  --返回值:12
  --取天 VALUES DAY(CURRENT TIMESTAMP);
  --返回值:11
  --取星期 VALUES DAYOFWEEK(CURRENT TIMESTAMP);
  --返回值:4
  --说明:取值范围为1-7,1代表星期日,所以今天是星期三,得出的值为4!
  --取星期 VALUES DAYNAME(CURRENT TIMESTAMP);
  --返回值:星期三
  --取小时 VALUES HOUR(CURRENT TIMESTAMP);
  --返回值:21
  --取分钟 VALUES MINUTE(CURRENT TIMESTAMP);
  --返回值:15
  --取秒 VALUES SECOND(CURRENT TIMESTAMP);
  --返回值:25
  --取毫秒 VALUES MICROSECOND(CURRENT TIMESTAMP);
  --返回值:454287
  说明:以上函数可以直接供大家在存储过程以及自定义函数或者触发器中直接调用,所有返回类型均为 INTEGER
  --取日期 VALUES DATE(CURRENT TIMESTAMP);
  --返回数据类型:DATE
  --返回值:2013-12-11
  --取时间 VALUES TIME(CURRENT TIMESTAMP);
  --返回数据类型:TIME --返回值:21:14:34

  3、DB2中日期、时间的计算

  --取明年的今天 VALUES CURRENT DATE + 1 YEAR;
  --返回值:2014-12-11
  --取前年的今天(两种写法都合法) VALUES CURRENT DATE - 2 YEAR;VALUES CURRENT DATE - 2 YEARS;
  --返回值:2011-12-11
  --取下一个小时后的时间 VALUES CURRENT TIME + 1 HOUR;
  --返回值:22:22:45
  --混合应用的示例1: VALUES CURRENT DATE + 2 YEARS - 1 MONTH + 20 DAYS; --返回值:2015-12-01(笔者的当前日期为:2013-12-11,大家可以自己计算一下)
  --混合应用的示例2: VALUES CURRENT TIME + 5 HOURS - 3 MINUTES + 10 SECONDS; --返回值:02:22:51(笔者的当前时间为:21:25:41,大家可以自己计算一下)
  --计算两个日期之间的间隔天数 VALUES DAYS(CURRENT DATE) - DAYS('2013-01-01'); --返回值:344
  说明:DB2中日期、时间的计算非常的灵活,大家可以根据实际需求进行自己的计算

  4、 DB2中日期、时间的转换

  --将日期、时间类型转换为字符串型
  VALUES CHAR(CURRENT DATE);
  VALUES CHAR(CURRENT TIMESTAMP);
  -- 将字符串型转换为日期、时间类型
  VALUES TIMESTAMP (' 2012-10-17 12.00.00.000000');
  VALUES TIMESTAMP (' 2012-10-17 12:00:00');
  VALUES DATE (' 2012-10-17');
  VALUES DATE ('10/17/2012');
  --注意:该格式为(MM/DD/YYYY)
  VALUES TIME ('12:00:00');
  VALUES TIME ('12.00.00');
  说明:在实际应用中,TIMESTAMP()、DATE() 和 TIME() 函数接受更多种格式。其他的格式有兴趣的读者可以自己去发现。
  --注意:DATE(2012-10-17)和DATE(' 2012-10-17')虽然都是合法的,但是结果不同!其实DATE(2012-10-17)等价与DATE(1985),具体原因这里就不详细讲述了。
  VALUES DATE(2012-10-17) --返回值:0006/6/8
  VALUES DATE('2012-10-17') --返回值:2012-10-17

  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 的整数值表示。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302184-1-1.html 上篇帖子: data stage 入门:关于db2的job创建,布署 下篇帖子: Oracle与DB2数据类型的对应
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表