Time
数据类型 Time 表示一个由小时、分钟和秒组成的时间。
它独立于任何日历日期,适用于不需要日、月、年部分的取值。
语法:
文本表示的范围:[-999:59:59, 999:59:59]。
精度:1 秒。
实现细节
表示与性能。
数据类型 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 值不会在不同的时区下被静默重新解释。
示例
1. 创建一个包含 Time 类型列的表,并向其中插入数据:
2. 按 Time 值过滤
可以在 WHERE 谓词中使用字符串值来过滤 Time 列的值,它会被自动转换为 Time:
3. 查看结果类型: