HOUR
功能描述
提取时间中的“小时”部分。
说明:
与MySQL差异:
- 参数和取值范围小于MySQL,因为后者允许小时数大于23,如272:59:59在MySQL中合法,而在虚谷数据库中不合法。
- 对于参数为日期时间/时间的字符串,MySQL不需对参数做转换,虚谷数据库需要先把参数做显式转换。例如:
MySQL:SELECT HOUR('03:04:05');
虚谷数据库:SELECT HOUR('03:04:05'::TIME);
或SELECT HOUR(cast('03:04:05' AS TIME));
注:对于TIME WITH TIME ZONE类型的字符串,只支持CAST()
方式转换,不支持::类型名
方式转换。- 所有涉及到支持DATETIME和TIME的函数,以字符串形式传入参数时均报错:时间常数值错误。
原因:字符串转时间时,DATETIME的评分高于TIME,无法进行隐式转换,需进行强制类型转换。
语法格式
HOUR(expr)
参数说明
expr
:DATETIME/DATETIME WITH TIME ZONE/TIME/TIME WITH TIME ZONE类型的时间。
说明:
参数取值范围: [0001-01-01 00:00:00, 9999-12-31 23:59:59]/[00:00:00, 23:59:59]
函数返回类型
INTEGER类型。
说明:
返回值范围:[0, 23]
示例
sql
SQL> SELECT HOUR('23:59:59.999'::TIME);
EXPR1 |
------------------------------------------------------------------------------
23 |
SQL> SELECT HOUR(cast('12:34:56-11:00' AS TIME WITH TIME ZON));
EXPR1 |
------------------------------------------------------------------------------
12 |
SQL> SELECT HOUR(cast('9999-12-31 23:59:59.999' AS DATETIME WITH TIME ZONE));
EXPR1 |
------------------------------------------------------------------------------
23 |