0
点赞
收藏
分享

微信扫一扫

第161章 SQL函数 YEAR


文章目录

  • ​​第161章 SQL函数 YEAR​​
  • ​​大纲​​
  • ​​参数​​
  • ​​描述​​
  • ​​示例​​

第161章 SQL函数 YEAR

返回日期表达式的年份的日期函数。

大纲

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

SELECT {fn YEAR(64701)} AS HorologDate_Year

2018

以下示例返回当前年份:

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
}
}

DHC-APP> d ##class(PHA.TEST.SQLFunction).Year()

CURRENT_DATE year is: 2022
NOW year is: 2022

举报

相关推荐

0 条评论