文章目录
- 第九十八章 SQL函数 MONTHNAME
- 大纲
- 参数
- 描述
- 示例
第九十八章 SQL函数 MONTHNAME
返回日期表达式的月份名称的日期函数。
大纲
{fn MONTHNAME(date-expression)}
参数
-
- 计算结果为 日期整数、ODBC 日期或时间戳的表达式。此表达式可以是列名、另一个标量函数的结果或日期或时间戳字面量。date-expression
描述
MONTHNAME
将日期整数、
$HOROLOG
或
$ZTIMESTAMP
值、
ODBC
格式日期字符串或时间戳作为输入。
日期表达式时间戳可以是数据类型
%Library.PosixTime
(编码的 64 位有符号整数),也可以是数据类型
%Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)
。
时间戳的时间部分不被评估,可以省略。
MONTHNAME
返回相应日历月的名称,从一月到十二月。返回值是一个字符串,最大长度为 15。
MONTHNAME
检查提供的日期是否有效。年份必须介于
0001
和
9999
(含)之间、月份
01
至
12
以及适合该月的日期(例如,
02/29
仅在闰年有效)。如果日期无效,
MONTHNAME
会发出
SQLCODE -400
<ILLEGAL VALUE>
错误。
月份名称默认为全长美式英语月份名称。要更改这些月份名称值,请使用带有
MONTH_NAME
选项的
SET OPTION
命令。
使用
DATENAME
函数可以返回相同的月份名称信息。可以使用
TO_DATE
检索月份名称或月份名称缩写与其他日期元素。要返回与月份对应的整数,请使用
MONTH DATEPART
或
TO_DATE
。
也可以使用
MONTHNAME()
方法调用从 ObjectScript 调用此函数:
$SYSTEM.SQL.Functions.MONTHNAME(date-expression)
示例
以下示例均返回字符串
“February”
,因为它是日期表达式的月份(
2018 年 2 月 22 日
):
SELECT {fn MONTHNAME('2018-02-22')} AS NameOfMonth
February
SELECT {fn MONTHNAME(64701)} AS NameOfMonth
February
SELECT {fn MONTHNAME({fn NOW()})} AS MnameNow,
{fn MONTHNAME(CURRENT_DATE)} AS MNameCurrDate,
{fn MONTHNAME(CURRENT_TIMESTAMP)} AS MNameCurrTS,
{fn MONTHNAME($HOROLOG)} AS MNameHorolog,
{fn MONTHNAME($ZTIMESTAMP)} AS MNameZTS
March March March March March
/// d ##class(PHA.TEST.SQLFunction).MonthName()
ClassMethod MonthName()
{
s testdate = "2017-02-29"
&sql(
SELECT {fn MONTHNAME(:testdate)} INTO :a
)
if SQLCODE '= 0 {
w !,"Error code ",SQLCODE,!
w %msg,!
} else {
w !,"returns: ",a
}
q
}
DHC-APP>d ##class(PHA.TEST.SQLFunction).MonthName()
Error code -400
Unexpected error occurred: <ILLEGAL VALUE>%0BCo+10^PHA.TEST.SQLFunction.1