Skip to content

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 |