文章
姚 鑫 · 一月 26 阅读大约需 2 分钟

第三十五章 SQL函数 CURRENT_DATE

第三十五章 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_FORMATYear_OPTIONDATE_SEFACTOR选项配合使用。

要仅返回当前日期,请使用CURRENT_DATECURDATE。这些函数以DATE数据类型返回它们的值。CURRENT_TIMESTAMPGETDATENOW函数也可用于将当前日期和时间作为TIMESTAMP数据类型返回。

请注意,除GETUTCDATE之外,所有 SQL时间和日期函数都特定于本地时区设置。要获得通用的当前时间戳(独立于时区),可以使用GETUTCDATE或ObjectScript $ZTIMESTAMP特殊变量。

使用嵌入式SQL时,这些数据类型的执行方式不同。DATE数据类型将值存储为$HOROLOG格式的整数;当在SQL中显示时,它们将转换为日期显示格式;当从嵌入式SQL返回时,它们将作为整数返回。TIMESTAMP数据类型以相同的格式存储和显示其值。可以使用CONVERT函数更改日期和时间的数据类型。

CURRENT_DATE可以用作CREATE TABLEALTER 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
1
0 47
讨论 (0)1
登录或注册以继续