SQL函数 YEAR
返回日期表达式的年份的日期函数。
大纲
代码语言:javascript复制YEAR(date-expression)
{fn YEAR(date-expression)}
参数
-
date-expression
- 计算结果为 日期整数、ODBC 日期字符串或时间戳的表达式。此表达式可以是列名、另一个标量函数的结果或日期或时间戳字面量。
描述
YEAR
将日期整数($HOROLOG
日期)、ODBC
格式日期字符串或时间戳作为输入。 YEAR
以整数形式返回相应的年份。
日期表达式时间戳可以是数据类型 %Library.PosixTime
(编码的 64
位有符号整数),也可以是数据类型 %Library.TimeStamp
(yyyy-mm-dd hh:mm:ss.fff
)。
年份 (yyyy
) 部分应该是 0001
到 9999
范围内的四位整数。输入时前导零是可选的。前导零在输出上被抑制。两位数的年份不会扩展到四位数。
date-expression
的日期部分经过验证,并且必须包含 1
到 12
范围内的月份以及指定月份和年份的有效日期值。否则,将生成 SQLCODE -400
错误 <ILLEGAL VALUE>
。
如果日期表达式的时间部分存在,则对其进行验证,但可以省略。
注意:为了与 内部日期表示兼容,强烈建议将所有年份值表示为 0001
到 9999
范围内的四位整数。
TO_DATE
和 TO_CHAR
SQL 函数支持“儒略日期”,可用于表示 0001
之前的年份。ObjectScript
提供了支持此类儒略日期的方法调用。
年份格式默认为四位数年份。要更改今年显示默认值,请使用带有 YEAR_OPTION
选项的 SET OPTION
命令。
可以使用以下 SQL 标量函数返回日期时间字符串的元素:YEAR
、MONTH
、DAY
、DAYOFMONTH
、HOUR
、MINUTE
、SECOND
。使用 DATEPART
或 DATENAME
函数可以返回相同的元素。
也可以使用 YEAR()
方法调用从 ObjectScript 调用此函数:
$SYSTEM.SQL.Functions.YEAR(date-expression)
示例
以下示例返回整数 2018
:
SELECT YEAR('2018-02-22 12:45:37') AS ODBCDate_Year
2018
代码语言:javascript复制SELECT {fn YEAR(64701)} AS HorologDate_Year
2018
以下示例返回当前年份:
代码语言:javascript复制SELECT YEAR(GETDATE()) AS Year_Now
2022
以下嵌入式 SQL
示例从两个函数返回当前年份。 CURRENT_DATE
函数返回数据类型 DATE
; NOW
函数返回数据类型 TIMESTAMP
。 YEAR
为两种输入数据类型返回一个四位数的年份整数:
/// d ##class(PHA.TEST.SQLFunction).Year()
ClassMethod Year()
{
&sql(
SELECT
{fn YEAR(CURRENT_DATE)},
{fn YEAR({fn NOW()})}
INTO
:a,:b
)
if SQLCODE '= 0 {
w !,"Error code ",SQLCODE
} else {
w !,"CURRENT_DATE year is: ",a
w !,"NOW year is: ",b
}
}
代码语言:javascript复制DHC-APP> d ##class(PHA.TEST.SQLFunction).Year()
CURRENT_DATE year is: 2022
NOW year is: 2022