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 |