文章目录
第三十五章 SQL函数 CURRENT_DATE
日期/时间函数,返回当前本地日期。
大纲
CURRENT_DATE
描述
CURRENT_DATE不带任何参数。它将当前本地日期作为数据类型DATE返回。不允许使用参数括号。CURRENT_DATE返回此时区的当前本地日期;它根据本地时间变量(如夏令时)进行调整。
在逻辑模式下CURRENT_DATE以$HOROLOG格式返回当前本地日期;
例如,64701。
显示模式下的CURRENT_DATE以区域设置的默认格式返回当前本地日期。
例如,在美国的区域设置为02/22/2018,在欧洲的区域设置为22/02/2018,在俄罗斯的区域设置为22.02.2018。
要指定不同的日期格式,请使用TO_DATE函数。要更改默认日期格式,请将SET OPTION命令与DATE_FORMAT、Year_OPTION或DATE_SEFACTOR选项配合使用。
要仅返回当前日期,请使用CURRENT_DATE或CURDATE。这些函数以DATE数据类型返回它们的值。CURRENT_TIMESTAMP、GETDATE和NOW函数也可用于将当前日期和时间作为TIMESTAMP数据类型返回。
请注意,除GETUTCDATE之外,所有 SQL时间和日期函数都特定于本地时区设置。要获得通用的当前时间戳(独立于时区),可以使用GETUTCDATE或ObjectScript $ZTIMESTAMP特殊变量。
使用嵌入式SQL时,这些数据类型的执行方式不同。DATE数据类型将值存储为$HOROLOG格式的整数;当在SQL中显示时,它们将转换为日期显示格式;当从嵌入式SQL返回时,它们将作为整数返回。TIMESTAMP数据类型以相同的格式存储和显示其值。可以使用CONVERT函数更改日期和时间的数据类型。
CURRENT_DATE可以用作CREATE TABLE或ALTER TABLE中的默认规范关键字。
示例
下面的示例返回转换为显示模式的当前日期:
SELECT CURRENT_DATE AS Today
2022/1/24 0:00:00
下面的嵌入式SQL示例返回存储的当前日期。由于此日期以$HOROLOG格式存储,因此将以整数形式返回:
&sql(SELECT CURRENT_DATE INTO :a)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"Current date is: ",a }
DHC-APP>d ##class(PHA.TEST.SQLCommand).CurrentDate()
Current date is: 66133
DHC-APP>
以下示例显示如何在WHERE子句中使用CURRENT_DATE返回最近1000天内出生的人的记录:
SELECT Name,DOB,Age
FROM Sample.Person
WHERE DOB > CURRENT_DATE - 1000










