SQL函数 DAYNAME
Date
函数,它返回日期表达式的星期几的名称。
大纲
代码语言:javascript复制{fn DAYNAME(date-expression)}
参数
-
date-expression
- 计算结果为日期整数、ODBC
日期或时间戳的表达式。该表达式可以是列名、另一个标量函数的结果或日期或时间戳文字。
描述
DAYNAME
返回与指定日期对应的日期的名称。返回值为字符串,最大长度为15
。默认返回的日期名称为:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
。
要更改这些默认日期名称值,请使用带有WEEKDAY_NAME
选项的SET OPTION
命令。
日期名称是针对日期整数、$HOROLOG
或$ZTIMESTAMP
值、ODBC格式日期字符串或时间戳计算的。
日期表达式时间戳可以是数据类型%Library.PosiTime
(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)
。
时间戳的时间部分不计算,可以省略。
DAYNAME
检查提供的日期是否为有效日期。年份必须介于0001
和9999
之间(包括0001
和9999
)、月01到12和适合该月的日期(例如,02/29
仅在闰年有效)。如果日期无效,DAYNAME
将发出SQLCODE-400
错误(发生致命错误)。
可以使用DATENAME
函数返回星期几的信息。可以使用TO_DATE
检索带有其他日期元素的日期名称或日期名称缩写。要返回与星期几对应的整数,请使用DAYOFWEEK DATEPART
或TO_DATE
。
也可以使用DAYNAME()
方法调用从ObjectScript调用此函数:
$SYSTEM.SQL.Functions.DAYNAME(date-expression)
示例
以下示例都返回字符串星期三,因为日期的日期(2018年2月21日)是星期三。第一个示例采用时间戳字符串:
代码语言:javascript复制SELECT {fn DAYNAME('2018-02-21 12:35:46')} AS Weekday
Wednesday
第二个示例采用日期整数:
代码语言:javascript复制SELECT {fn DAYNAME(64700)} AS Weekday
Wednesday
以下示例均返回一周中当前日期的名称:
代码语言:javascript复制SELECT {fn DAYNAME({fn NOW()})} AS Wd_Now,
{fn DAYNAME(CURRENT_DATE)} AS Wd_CurrDate,
{fn DAYNAME(CURRENT_TIMESTAMP)} AS Wd_CurrTstamp,
{fn DAYNAME($ZTIMESTAMP)} AS Wd_ZTstamp,
{fn DAYNAME($HOROLOG)} AS Wd_Horolog
Saturday Saturday Saturday Saturday Saturday
请注意,$ZTIMESTAMP
返回协调世界时(UTC)。其他时间表达式值返回本地时间。这可能会影响DAYNAME值。
以下嵌入式SQL示例显示DAYNAME
如何响应无效日期(2017年不是闰年):
ClassMethod DayName()
{
s testdate = "2017-02-29"
&sql(
SELECT {fn DAYNAME(:testdate)}
INTO :a)
if SQLCODE '= 0 {
w !,"Error code ",SQLCODE
} else {
w !,"returns: ",a
}
QUIT
}
代码语言:javascript复制DHC-APP>d ##class(PHA.TEST.SQLCommand).DayName()
Error code -400