Time64
数据类型 Time64 表示带有小数秒的一天中的时刻 (time-of-day) 。
它不包含任何日历日期组件 (日、月、年) 。
参数 precision 定义小数位数,因此也就定义了最小时间粒度 (tick size) 。
时间粒度 (精度) :10-precision 秒。有效范围:0..9。常用取值为 3 (毫秒) 、6 (微秒) 和 9 (纳秒) 。
语法:
在内部,Time64 以有符号 64 位十进制数 (Decimal64) 的形式存储秒的小数部分。
时间精度由 precision 参数决定。
不支持时区:为 Time64 指定时区会抛出错误。
与 DateTime64 不同,Time64 不存储日期部分。
另见 Time。
文本表示范围:当 precision = 3 时为 [-999:59:59.000, 999:59:59.999]。一般情况下,最小值为 -999:59:59,最大值为 999:59:59,并且最多带有 precision 位小数 (例如,当 precision = 9 时,最小值为 -999:59:59.999999999) 。
实现细节
表示形式。
带符号的 Decimal64 值,用于表示具有 precision 位小数的秒的小数部分。
规范化。
将字符串解析为 Time64 时,时间组件会被规范化,而不会进行合法性校验。
例如,25:70:70 会被解释为 26:11:10。
负值。
支持并保留前导负号。
负值通常来源于对 Time64 值进行算术运算。
对于 Time64,文本输入 (例如 '-01:02:03.123') 和数值输入 (例如 -3723.123) 中的负值都会被保留。
饱和。 在拆解为组件或序列化为文本时,时刻部分会被限制在区间 [-999:59:59.xxx, 999:59:59.xxx] 内。 存储的数值可能超出该范围;然而,任何组件提取 (小时、分钟、秒) 和文本表示都会使用饱和值。
时区。
Time64 不支持时区。
在创建 Time64 类型或值时指定时区会抛出错误。
同样,尝试对 Time64 列应用或更改时区也不被支持,并会导致错误。
示例
- 创建一个包含
Time64类型列的表,并向其中插入数据:
- 按
Time64值进行过滤
注意:toTime64 会根据指定的精度,将数字字面量解析为带有小数部分的秒数,因此请显式提供预期的小数位数。
- 检查结果类型:
与 Date 相加
Time64 值可以与 Date 或 Date32 值相加,生成一个与 Time64 具有相同小数位精度的 DateTime64:
有关所有受支持的组合及结果类型的详细信息,请参阅日期和时间加法。
另请参阅