db2 current_timestamp的精度更高?

c0vxltue  于 2023-01-26  发布在  DB2
关注(0)|答案(2)|浏览(401)

更多的是一种娱乐,而不是一个真实的的问题,但有没有可能在current_timestamp中获得比微秒更高的精度。

values current_timestamp(12)

工作正常,但最后6位似乎总是0

m528fe3b

m528fe3b1#

一般来说,这是可能的,但是documentation on CURRENT TIMESTAMP指出了以下几点:
如果需要具有特定精度的时间戳,可以将专用寄存器引用为CURRENT TIMESTAMP(整数),其中整数的范围为0至12。默认精度为6。时钟阅读的精度因平台而异,如果检索到的时钟读数精度小于请求的精度,则结果值用零填充。
可能是您的系统或操作系统层没有提供足够的精度。而显而易见的问题是执行返回该值的SQL语句需要多少时间...
顺便说一句:如果你在一个复杂的语句中有多个CURRENT TIMESTAMP,那么时间总是相同的。但是如果你有多个,例如timestamp (generate_unique(), 12),它们就有不同的值。

vktxenjb

vktxenjb2#

可能是Db2的一些“特性”。
Linux x86-64:

$ db2 "values current_timestamp(12), timestamp (generate_unique(), 12)"; date +"%F-%H.%M.%S.%N"

1
--------------------------------
2023-01-24-14.04.12.953475000000
2023-01-24-11.04.12.953526000000

  2 record(s) selected.

2023-01-24-14.04.12.968668868

date实用程序显示nanos,但Db2没有...

相关问题