English
购物车图片 购物车 ( )
专业的品牌服务,为您创造更高的价值
总体概述 客户评价

【干货分享】DM7中时间类型的使用介绍



在数据库的日常使用过程中,无论是记录服务启动时间,还是存储前端应用中的订单时间,都离不开使用各类日期类型,本文就将给大家介绍DM7中各种时间类型的区别和使用注意事项。


一.DM7中时间日期类型简介


DM7中常用的时间日期类型有这三种DATE,TIME,TIMESTAMP。


DATE 类型包括年、月、日信息,定义了'-4712-01-01'和'9999-12-31'之间任何一个有效的格里高利日期。


TIME类型包括时、分、秒信息,定义了一个在'00:00:00.000000'和'23:59:59.999999'之间的有效时间。TIME 类型的小数秒精度规定了秒字段中小数点后面的位数,取值范围为 0~6,如果未定义,缺省精度为0。


TIMESTAMP 类型包括年、月、日、时、分、秒信息,定义了一个在'-4712-01-01

00:00:00.000000'和'9999-12-3123:59:59.999999'之间的有效格里高利日期时间。


TIMESTAMP 类型的小数秒精度规定了秒字段中小数点后面的位数,取值范围为 0~6,如果未定义 , 缺省精度为6。


二.DATE和TIMESTAMP的区别


根据上面的定义可以知道DATE类型只能存储年月日,那当我们尝试吧一个完整的时间存入DATE时会发生什么呢?我们可以做如下测试:


DECLARE

       TEST1 DATE;

       TEST2 DATE;

BEGIN

       SET TEST1=to_date('2018-11-0115:20:10','YYYY-MM-DDHH24:MI:SS'); --存入时间1

       SET TEST2=to_date('2018-11-0117:20:10','YYYY-MM-DDHH24:MI:SS'); --存入时间2

 

       IF TEST1=TEST2 THEN 

       PRINT'TEST1=TEST2';  --如果两个值相同则显示TEST1=TEST2

       PRINT  TEST1;

       ELSEIF TEST1>TEST2 THEN

       PRINT'TEST1>TEST2';

       PRINT TEST1;

      ENDIF;

END;


执行结果如下:


【干货分享】DM7中时间类型的使用介绍


可以看到,当我们尝试把一个包含年月日时分秒毫秒的完整时间存入date类型时,年月日之外的数值会被砍掉。因此,在对两个数值进行比较时,得出来的是等号。在这种情况下,为避免数据丢失,我们需要TIMESTAMP来存储完整的日期时间信息。


三. 从ORACLE到DM的迁移


熟悉ORACLE的读者应该了解,ORACLE的DATE类型中包括年、月、日、时、分、秒的信息。因此,在做ORACLE到DM的数据迁移时,如果不对DATE类型做转换,则可能会导致时、分、秒数据的丢失。这时,我们应将DATE类型转化成DM中的TIMESTAMP,演示如下:


在ORACLE中创建实例表并录入时间数据


CREATE TABLE T1 (AAA DATE);

INSERT INTO T1VALUES(to_date('2018-11-01 15:20:10','YYYY-MM-DD HH24:MI:SS'));

COMMIT;


这里我们使用DTS工具进行迁移,因篇幅关系这里就不演示过程了,迁移完成后,在DM内可以查到对应的T1表以及数据。


【干货分享】DM7中时间类型的使用介绍


表和数据已经迁移过来了,类型也被转换成了TIMESTAMP,时、分、秒的数据并没有丢失。这里,有的读者可能就会问了,为什么DATE类型自己变成了TIMESTAMP,是不是我们在迁移的过程中做了什么操作呢?


事实上,我在迁移的过程中并没有手动指定数据类型映射。但是,当我们使用DTS进行ORACLE到DM的迁移时,DTS工具会自己对某些类型做转换。


【干货分享】DM7中时间类型的使用介绍


如图所示,工具已经自动将DATE类型转化成了TIMESTAMP类型。当然,迁移时类型的转换还不止图中这些,有兴趣的读者可以参考DTS帮助文档中默认数据类型映射这一章节。


客户资料:
年缴保费: 时间类型
客户需求:



在数据库的日常使用过程中,无论是记录服务启动时间,还是存储前端应用中的订单时间,都离不开使用各类日期类型,本文就将给大家介绍DM7中各种时间类型的区别和使用注意事项。


一.DM7中时间日期类型简介


DM7中常用的时间日期类型有这三种DATE,TIME,TIMESTAMP。


DATE 类型包括年、月、日信息,定义了'-4712-01-01'和'9999-12-31'之间任何一个有效的格里高利日期。


TIME类型包括时、分、秒信息,定义了一个在'00:00:00.000000'和'23:59:59.999999'之间的有效时间。TIME 类型的小数秒精度规定了秒字段中小数点后面的位数,取值范围为 0~6,如果未定义,缺省精度为0。


TIMESTAMP 类型包括年、月、日、时、分、秒信息,定义了一个在'-4712-01-01

00:00:00.000000'和'9999-12-3123:59:59.999999'之间的有效格里高利日期时间。


TIMESTAMP 类型的小数秒精度规定了秒字段中小数点后面的位数,取值范围为 0~6,如果未定义 , 缺省精度为6。


二.DATE和TIMESTAMP的区别


根据上面的定义可以知道DATE类型只能存储年月日,那当我们尝试吧一个完整的时间存入DATE时会发生什么呢?我们可以做如下测试:


DECLARE

       TEST1 DATE;

       TEST2 DATE;

BEGIN

       SET TEST1=to_date('2018-11-0115:20:10','YYYY-MM-DDHH24:MI:SS'); --存入时间1

       SET TEST2=to_date('2018-11-0117:20:10','YYYY-MM-DDHH24:MI:SS'); --存入时间2

 

       IF TEST1=TEST2 THEN 

       PRINT'TEST1=TEST2';  --如果两个值相同则显示TEST1=TEST2

       PRINT  TEST1;

       ELSEIF TEST1>TEST2 THEN

       PRINT'TEST1>TEST2';

       PRINT TEST1;

      ENDIF;

END;


执行结果如下:


【干货分享】DM7中时间类型的使用介绍


可以看到,当我们尝试把一个包含年月日时分秒毫秒的完整时间存入date类型时,年月日之外的数值会被砍掉。因此,在对两个数值进行比较时,得出来的是等号。在这种情况下,为避免数据丢失,我们需要TIMESTAMP来存储完整的日期时间信息。


三. 从ORACLE到DM的迁移


熟悉ORACLE的读者应该了解,ORACLE的DATE类型中包括年、月、日、时、分、秒的信息。因此,在做ORACLE到DM的数据迁移时,如果不对DATE类型做转换,则可能会导致时、分、秒数据的丢失。这时,我们应将DATE类型转化成DM中的TIMESTAMP,演示如下:


在ORACLE中创建实例表并录入时间数据


CREATE TABLE T1 (AAA DATE);

INSERT INTO T1VALUES(to_date('2018-11-01 15:20:10','YYYY-MM-DD HH24:MI:SS'));

COMMIT;


这里我们使用DTS工具进行迁移,因篇幅关系这里就不演示过程了,迁移完成后,在DM内可以查到对应的T1表以及数据。


【干货分享】DM7中时间类型的使用介绍


表和数据已经迁移过来了,类型也被转换成了TIMESTAMP,时、分、秒的数据并没有丢失。这里,有的读者可能就会问了,为什么DATE类型自己变成了TIMESTAMP,是不是我们在迁移的过程中做了什么操作呢?


事实上,我在迁移的过程中并没有手动指定数据类型映射。但是,当我们使用DTS进行ORACLE到DM的迁移时,DTS工具会自己对某些类型做转换。


【干货分享】DM7中时间类型的使用介绍


如图所示,工具已经自动将DATE类型转化成了TIMESTAMP类型。当然,迁移时类型的转换还不止图中这些,有兴趣的读者可以参考DTS帮助文档中默认数据类型映射这一章节。


相关案例
2020 - 05 - 20
点击次数: 0
似水季节,石榴花开520如期而至空气中弥漫着甜蜜的气味又到一年一度爱意涌动的季节2020年注定是特殊的一年,疫情阴霾之下,涌现出无数英雄事迹,体现出中华民族坚韧不拔、同舟共济的精神。多难兴邦,相信阳光总在风雨后!尽管没有亲密聚会,没有握手,但人类迎难而上的精神相互碰撞出各种火花——云植树、云吸猫、云招聘、云婚礼...通过网络,人们互相激励、共勉互进!♥♥♥ 520网络情人节疫情可以隔离社...
官网微信公众号官方微信公众号
官方技术咨询一群官方技术咨询一群
官方技术咨询二群官方技术咨询二群
官网培训咨询QQ官网培训咨询QQ
支持:dmtech@dameng.com
地址:中国·武汉·东湖新技术开发区高新大道999号未来科技大厦C3栋16-19层
咨询热线:400 991 6599
传真:+86 0755-2788 8009
友情链接:
鄂Copyright ©2017 - 2019 武汉达梦数据库有限公司
犀牛云提供企业云服务
X
3

电话号码

4

阿里旺旺设置

等待加载动态数据...

等待加载动态数据...

5

电话号码管理

6

二维码管理

  • 微信二维码

    微信二维码

等待加载动态数据...

等待加载动态数据...

展开