HOUR
功能描述
返回时间中的小时。
说明:
与MySQL差异:
- 参数和取值范围小于MySQL,因为后者允许小时数大于23,如272:59:59在MySQL中合法,而在虚谷数据库中不合法。
- 对于参数为日期时间/时间的字符串,MySQL不需对参数做转换,虚谷数据库需要先把参数做显式转换。例如:
注:对于 TIME WITH TIME ZONE 类型的字符串,只支持 CAST() 方式转换,不支持 ::类型名 方式转换。
- MySQL:SELECT HOUR('03:04:05');
- 虚谷数据库:SELECT HOUR('03:04:05'::TIME); 或 SELECT HOUR(cast('03:04:05' AS TIME));
- 所有涉及到支持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 |