Time 表示由小时、分钟和秒组成的时间。
它独立于任何日历日期,适用于不需要日、月、年部分的值。
语法:
实现细节
Time 在内部存储为一个有符号的 32 位整数,用于编码秒数。
Time 和 DateTime 类型的值占用相同的字节数,因此性能相近。
归一化。
将字符串解析为 Time 时,会对时间各组成部分进行归一化,但不会校验其有效性。
例如,25:70:70 会被解释为 26:11:10。
负值。
支持并保留前导负号。
负值通常来自对 Time 值执行算术运算。
对于 Time 类型,无论是文本输入 (例如 '-01:02:03') 还是数值输入 (例如 -3723) ,负值都会被保留。
饱和。
时刻部分会被限制在 [-999:59:59, 999:59:59] 范围内。
小时数超过 999 (或低于 -999) 的值,在以文本形式表示以及往返转换时,都会显示为 999:59:59 (或 -999:59:59) 。
时区。
Time 不支持时区,也就是说,Time 值会在不带区域上下文的情况下进行解释。
为 Time 指定时区作为类型参数,或在创建值时指定时区,都会抛出错误。
同样,尝试对 Time 列应用或更改时区也不受支持,并会导致错误。
Time 值不会在不提示的情况下按不同时区重新解释。
示例
Time 类型列的表,并向其中插入数据:
Time 值过滤
Time 列的值可在 WHERE 谓词中通过字符串值进行过滤。该字符串会自动转换为 Time: