oracle将时间戳精确到毫秒相减
时间: 2023-08-18 11:06:16 浏览: 127
时间戳与时间互换精确到毫秒
在 Oracle 中,可以使用 `NUMTODSINTERVAL` 函数将毫秒数转换为时间间隔,然后使用 `-` 运算符计算两个时间戳之间的时间差。
例如,假设有两个时间戳字符串分别为 `'1629997200000'` 和 `'1629997205000'`,表示时间戳分别为 2021-08-26 08:00:00.000 和 2021-08-26 08:00:05.000,可以使用以下语句计算它们之间的时间差:
```
SELECT TO_TIMESTAMP('1629997205000', 'YYYY-MM-DD HH24:MI:SS.FF3') - TO_TIMESTAMP('1629997200000', 'YYYY-MM-DD HH24:MI:SS.FF3') AS time_diff FROM DUAL;
```
输出结果为:
```
+00 00:00:05.000000
```
其中,`FF3` 表示时间戳的毫秒部分精确到 3 位。
注意,时间差的数据类型是时间间隔类型,可以使用 `EXTRACT` 函数从中提取出具体的时间单位,例如:
```
SELECT EXTRACT(SECOND FROM TO_TIMESTAMP('1629997205000', 'YYYY-MM-DD HH24:MI:SS.FF3') - TO_TIMESTAMP('1629997200000', 'YYYY-MM-DD HH24:MI:SS.FF3')) AS seconds_diff FROM DUAL;
```
输出结果为:
```
5
```
这表示时间差为 5 秒。
阅读全文