美文网首页
第九十八章 SQL函数 MONTHNAME

第九十八章 SQL函数 MONTHNAME

作者: Cache技术分享 | 来源:发表于2022-04-01 08:57 被阅读0次

    第九十八章 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 检查提供的日期是否有效。年份必须介于 00019999(含)之间、月份 0112 以及适合该月的日期(例如,02/29 仅在闰年有效)。如果日期无效,MONTHNAME 会发出 SQLCODE -400 <ILLEGAL VALUE>错误。

    月份名称默认为全长美式英语月份名称。要更改这些月份名称值,请使用带有 MONTH_NAME 选项的 SET OPTION 命令。

    使用 DATENAME 函数可以返回相同的月份名称信息。可以使用 TO_DATE检索月份名称或月份名称缩写与其他日期元素。要返回与月份对应的整数,请使用 MONTH DATEPARTTO_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
    

    以下嵌入式 SQL 示例显示了 MONTHNAME 如何响应无效日期(2017 年不是闰年):

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

    SQLCODE -400 错误代码与指示 <ILLEGAL VALUE>%msg 一起发出。

    相关文章

      网友评论

          本文标题:第九十八章 SQL函数 MONTHNAME

          本文链接:https://www.haomeiwen.com/subject/sfoojrtx.html