更多的是一种娱乐,而不是一个真实的的问题,但有没有可能在current_timestamp中获得比微秒更高的精度。
current_timestamp
values current_timestamp(12)
工作正常,但最后6位似乎总是0
m528fe3b1#
一般来说,这是可能的,但是documentation on CURRENT TIMESTAMP指出了以下几点:如果需要具有特定精度的时间戳,可以将专用寄存器引用为CURRENT TIMESTAMP(整数),其中整数的范围为0至12。默认精度为6。时钟阅读的精度因平台而异,如果检索到的时钟读数精度小于请求的精度,则结果值用零填充。可能是您的系统或操作系统层没有提供足够的精度。而显而易见的问题是执行返回该值的SQL语句需要多少时间...顺便说一句:如果你在一个复杂的语句中有多个CURRENT TIMESTAMP,那么时间总是相同的。但是如果你有多个,例如timestamp (generate_unique(), 12),它们就有不同的值。
timestamp (generate_unique(), 12)
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没有...
date
2条答案
按热度按时间m528fe3b1#
一般来说,这是可能的,但是documentation on CURRENT TIMESTAMP指出了以下几点:
如果需要具有特定精度的时间戳,可以将专用寄存器引用为CURRENT TIMESTAMP(整数),其中整数的范围为0至12。默认精度为6。时钟阅读的精度因平台而异,如果检索到的时钟读数精度小于请求的精度,则结果值用零填充。
可能是您的系统或操作系统层没有提供足够的精度。而显而易见的问题是执行返回该值的SQL语句需要多少时间...
顺便说一句:如果你在一个复杂的语句中有多个CURRENT TIMESTAMP,那么时间总是相同的。但是如果你有多个,例如
timestamp (generate_unique(), 12)
,它们就有不同的值。vktxenjb2#
可能是Db2的一些“特性”。
Linux x86-64:
date
实用程序显示nanos,但Db2没有...