返回日期表达式的月份日期的日期函数。
{fn DAYOFMONTH(date-expression)}
date-expression
- 要从中返回月值日期的日期或时间戳表达式。作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。DAYOFMONTH
以1
到31
之间的整数形式返回每月的第几天。日期表达式可以是日期整数、$HOROLOG
或$ZTIMESTAMP
值、ODBC格式的日期字符串或时间戳。
日期表达式时间戳可以是数据类型%Library.PosiTime
(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)
。
TIMESTAMP
或$HOROLOG
字符串的时间部分不计算,可以省略。
DAYOFMONTH
和DAY
函数在功能上是相同的。
也可以使用DAYOFMONTH()
方法调用从ObjectScript调用此函数:
DHC-APP> w $SYSTEM.SQL.DAYOFMONTH("2018-02-25")
25
时间戳字符串的日(Dd)部分应该是介于1
到31
之间的整数。但是,不会对用户提供的值进行范围检查。按照指定的方式返回大于31
的数字和分数。由于(-
)用作分隔符,因此不支持负数。输入上的前导零是可选的;输出上不显示前导零。
当日期部分为‘0’
、‘00’
或非数字值时,DAYOFMONTH
返回NULL
。如果完全省略日期字符串的日期部分(‘yyyy-mm hh:mm:ss’
),或者如果没有提供日期表达式,也会返回NULL
。
可以使用以下SQL标量函数返回日期时间字符串的元素:年、月、DAYOFMONTH
(或日)、小时、分钟、秒。使用DATEPART
或DATENAME
函数可以返回相同的元素。DATEPART
和DATENAME
对日期值执行值和范围检查。
在计算$HOROLOG
值的月份日期时,DAYOFMONTH
会计算闰年差异,包括世纪日调整:2000
年是闰年,1900
和2100
不是闰年。
DAYOFMONTH
可以将1840年12月31日
之前的日期表达式值处理为负整数。下面的示例显示了这一点:
SELECT {fn DAYOFMONTH(-306)} AS DayOfMonthFeb, /* February 29, 1840 */
{fn DAYOFMONTH(-305)} AS DayOfMonthMar, /* March 1, 1840 */
{fn DAYOFMONTH(-127410)} AS DayOfMonthFeb /* February 29, 1492 */
29 1 29
LAST_DAY
函数返回指定日期的月份最后一天的日期(以$HOROLOG
格式表示)。
以下示例返回数字25
,因为指定的日期是该月的第25天:
SELECT {fn DAYOFMONTH('2018-02-25')} AS DayNumTS,
{fn DAYOFMONTH(64704)} AS DayNumH
25 25
下面的示例还返回数字25
,表示该月中的某一天。省略年份,但分隔符(-
)用作占位符:
SELECT {fn DAYOFMONTH('-02-25 11:45:32')} AS DayNum
25
以下示例返回<null>
:
SELECT{fn DAYOFMONTH('2018-02-00 11:45:32')} AS DayNum
SELECT {fn DAYOFMONTH('2018-02 11:45:32')} AS DayNum
SELECT {fn DAYOFMONTH('11:45:32')} AS DayNum
以下DAYOFMONTH
示例均返回当月的当前日期:
SELECT {fn DAYOFMONTH({fn NOW()})} AS DoM_Now,
{fn DAYOFMONTH(CURRENT_DATE)} AS DoM_CurrD,
{fn DAYOFMONTH(CURRENT_TIMESTAMP)} AS DoM_CurrTS,
{fn DAYOFMONTH($HOROLOG)} AS DoM_Horolog,
{fn DAYOFMONTH($ZTIMESTAMP)} AS DoM_ZTS
8 8 8 8 8
请注意,$ZTIMESTAMP
返回协调世界时(UTC
)。其他时间表达式值返回本地时间。这可能会影响DAYOFMONTH
值。
下面的示例显示了前导零被取消。它返回长度为1或2的值,具体取决于月值的日期:
SELECT LENGTH({fn DAYOFMONTH('2018-02-05')}),
LENGTH({fn DAYOFMONTH('2018-02-15')})
1 2
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。