天天看点

第九十八章 SQL函数 MONTHNAME

文章目录

  • 第九十八章 SQL函数 MONTHNAME
  • 大纲
  • 参数
  • 描述
  • 示例

第九十八章 SQL函数 MONTHNAME

返回日期表达式的月份名称的日期函数。

大纲

{fn MONTHNAME(date-expression)}
           

参数

  • date-expression

    - 计算结果为 日期整数、ODBC 日期或时间戳的表达式。此表达式可以是列名、另一个标量函数的结果或日期或时间戳字面量。

描述

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