Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > 第七十一章 SQL函数 LAST_DAY

文章
姚 鑫 · 三月 4, 2022 阅读大约需 2 分钟

第七十一章 SQL函数 LAST_DAY

第七十一章 SQL函数 LAST_DAY

日期函数,它为日期表达式返回一个月的最后一天的日期。

大纲

LAST_DAY(date-expression)

参数

  • date-expression - 表达式,它是列的名称、另一个标量函数的结果或日期或时间戳文字。

描述

LAST_DAY以整数形式返回指定月份的最后一天,格式为$HOROLOG。
计算闰年差异,包括世纪日调整:2000是闰年,1900和2100不是闰年。

日期表达式可以是一个日期整数、一个$HOROLOG或$ZTIMESTAMP值、一个ODBC格式的日期字符串或一个时间戳。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)。

%TIMESTAMP字符串的时间部分是可选的。

指定无效日期时,LAST_DAY返回0(显示模式为12/31/1840):日或月为零;大于12的月;或大于当年该月天数的日。年份必须在0001到9999之间。

也可以使用lastday()方法调用从ObjectScript调用此函数:

  WRITE $SYSTEM.SQL.Functions.LASTDAY("2018-02-22"),!
  WRITE $SYSTEM.SQL.Functions.LASTDAY(64701)

示例

以下示例将该月的最后一天作为日期整数返回。该值是显示为整数还是日期字符串取决于当前的SQL显示模式设置。

以下两个示例都返回数字59594(对应于‘2004-02-29’),因为指定日期的月份的最后一天是2月29(2004年是闰年):

SELECT LAST_DAY('2004-02-25')

2004/2/29 0:00:00
SELECT LAST_DAY(59590)

2004/2/29 0:00:00

以下示例均返回与当月最后一天对应的日期整数:

SELECT LAST_DAY({fn NOW()}) AS LD_Now,
       LAST_DAY(CURRENT_DATE) AS LD_CurrDate,
       LAST_DAY(CURRENT_TIMESTAMP) AS LD_CurrTstamp,
       LAST_DAY($ZTIMESTAMP) AS LD_ZTstamp,
       LAST_DAY($HOROLOG) AS LD_Horolog

2022/2/28 0:00:00   2022/2/28 0:00:00   2022/2/28 0:00:00   2022/2/28 0:00:00   2022/2/28 0:00:00
#SQL #Caché

源 URL:https://cn.community.intersystems.com/post/%E7%AC%AC%E4%B8%83%E5%8D%81%E4%B8%80%E7%AB%A0-sql%E5%87%BD%E6%95%B0-lastday