CURRENT_TIMESTAMP函数精度

       这段时间在做数据库兼容的测试,把mysql迁移道达梦数据库,然后又从达梦迁移到oracle数据库,搞得头都大了。。。。在迁移的过程中遇到一个时间类型问题:

mysql的timestamp字段默认值设置为current_timestamp类型,这个类型在这个数据库之间迁移,报了精度超出范围,查看了阿里的OceanBase的current_timestamp函数详解,对精度的解释如下,参考着能够解决这个问题,记录如下:

CURRENT_TIMESTAMP 函数返回 TIMESTAMP WITH TIME ZONE 数据类型的当前会话时区中的当前日期,返回值中包含当前的时区信息。

语法:

CURRENT_TIMESTAMP (precision)

参数:

参数说明
precision表示秒小数位的精度,默认值为 6,取值范围 0~9。

返回类型:

包含当前的时区信息的 TIMESTAMP WITH TIME ZONE 数据类型。

示例

此示例显示了不同会话时区使用 CURRENT_TIMESTAMP 函数所得的结果。

设置当前时区至 GMT-5 时区:

ALTER SESSION SET TIME_ZONE = '-05:00';

执行以下语句调用函数:

SELECT CURRENT_TIMESTAMP FROM DUAL;

查询结果如下:

+------------------------------------+
| CURRENT_TIMESTAMP                  |
+------------------------------------+
| 2020-03-08 01:49:31.219066 -05:00  |
+------------------------------------+

切换当前时区至 GMT+8 时区,且调整秒的小数位精度为 3:

ALTER SESSION SET TIME_ZONE = '+08:00';

执行以下语句调用函数:

SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

查询结果如下:

+---------------------------------+
| CURRENT_TIMESTAMP(3)            |
+---------------------------------+
| 2020-03-08 14:50:32.499 +08:00  |
+---------------------------------+

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值