Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > 第九十七章 SQL函数 MONTH

文章
姚 鑫 · 三月 30, 2022 阅读大约需 2 分钟

第九十七章 SQL函数 MONTH

第九十七章 SQL函数 MONTH

日期函数,它将月份作为日期表达式的整数返回。

大纲

MONTH(date-expression)

{fn MONTH(date-expression)}

描述

  • date-expression - 表达式,它是列的名称、另一个标量函数的结果,或者是日期或时间戳文字。

描述

MONTH 返回一个指定月份的整数。月份整数是针对 日期整数、$HOROLOG 或 $ZTIMESTAMP 值、ODBC 格式日期字符串或时间戳计算的。

日期表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。

日期字符串的月份 (mm) 部分必须是 1 到 12 范围内的整数。前导零在输入时是可选的。输出时抑制前导零和尾随零。

date-expression 的日期部分经过验证,并且必须包含 1 到 12 范围内的月份以及指定月份和年份的有效日期值。否则,将生成 SQLCODE -400 错误 <ILLEGAL VALUE>。

date-expression 的时间部分未经验证,可以省略。

请注意,MONTH 可以作为 ODBC 标量函数(使用大括号语法)或作为 SQL 通用函数调用。

$SYSTEM.SQL.Functions.MONTH(date-expression)

可以使用以下 SQL 函数返回日期时间字符串的元素:YEAR、MONTH、DAY(或 DAYOFMONTH)、HOUR、MINUTE 和 SECOND。使用 DATEPART 或 DATENAME 函数可以返回相同的元素。可以使用 TO_DATE 返回日期元素。 DATEPART 和 DATENAME 对月份值执行值和范围检查。

LAST_DAY 函数返回指定月份的最后一天的日期。

示例

以下示例均返回数字 2,因为二月是一年中的第二个月:

SELECT MONTH('2018-02-22') AS Month_Given

2
SELECT {fn MONTH(64701)} AS Month_Given

2

以下示例按生日顺序按月和日对记录进行排序,忽略 DOB 的年份部分:

SELECT Name,DOB AS Birthdays
FROM Sample.Person
ORDER BY MONTH(DOB),DAY(DOB),Name

以下示例均返回当前月份:

SELECT {fn MONTH({fn NOW()})} AS MNow,
       MONTH(CURRENT_DATE) AS MCurrD,
       {fn MONTH(CURRENT_TIMESTAMP)} AS MCurrTS,
       MONTH($HOROLOG) AS MHorolog,
       {fn MONTH($ZTIMESTAMP)} AS MZTS


3   3   3   3   3
#SQL #Caché

源 URL:https://cn.community.intersystems.com/post/%E7%AC%AC%E4%B9%9D%E5%8D%81%E4%B8%83%E7%AB%A0-sql%E5%87%BD%E6%95%B0-month