文章目录
- 第三十六章 SQL函数 CURRENT_TIME
- 大纲
- 参数
- 描述
- 小数秒精度
- 示例
第三十六章 SQL函数 CURRENT_TIME
返回当前本地时间的日期/时间函数。
大纲
CURRENT_TIME
CURRENT_TIME(precision)参数
-
precision - 一个正整数,它将时间精度指定为小数位数。默认值为0(无小数秒);此默认值是可配置的。
CURRENT_TIME返回时间数据类型。
描述
CURRENT_TIME要么不带参数,要么带精度参数。不允许使用空参数括号。
CURRENT_TIME返回此时区的当前本地时间。它会根据当地时间变化(如夏令时)进行调整。
逻辑模式下的CURRENT_TIME以$HOROLOG格式返回当前本地时间;例如,37065。显示模式下的当前时间以区域设置的默认格式返回当前本地时间;例如,10:18:27。
要更改默认时间格式,请使用带有time_format和time_PRECISION选项的SET OPTION命令。可以配置分数秒的精度,如下所述。
要仅返回当前时间,请使用CURRENT_TIME或CURTIME。这些函数以时间数据类型返回它们的值。CURRENT_TIMESTAMP、GETDATE和NOW函数也可用于将当前日期和时间作为TIMESTAMP数据类型返回。
请注意,除GETUTCDATE之外,所有 SQL时间和日期函数都特定于本地时区设置。要获得通用的当前时间戳(独立于时区),可以使用GETUTCDATE或ObjectScript $ZTIMESTAMP特殊变量。
使用嵌入式SQL时,这些数据类型的执行方式不同。时间数据类型以$HOROLOG格式将值存储为整数(作为自午夜以来的秒数);以SQL显示时,它们将转换为时间显示格式;从嵌入式SQL返回时,它们将作为整数返回。时间戳数据类型存储并以相同格式显示其值。可以使用CAST或转换功能来更改时间和日期的数据类型。
CURRENT_TIME可以用作CREATE TABLE或ALTER TABLE中的默认规范关键字。CURRENT_TIME用作默认规范关键字时不能指定精度参数。
小数秒精度
当前的时间可以返回高达9位数的分数秒精度。精度位数的默认值可以使用以下配置:
- 使用
TIME_PRECISION选项设置选项。 - 系统范围的
$SYSTEM.SQL.Util.SetOption()方法配置选项DefaultTimePrecision。
要确定当前设置,调用$SYSTEM.SQL.CurrentSettings(),它显示默认的时间精度;
默认值为0。 - 进入管理门户,选择“系统管理”、“配置”、“SQL和对象设置”、“SQL”。
查看和编辑GETDATE()、CURRENT_TIME和CURRENT_TIMESTAMP的默认时间精度的当前设置。
指定从0到9(包括9)的整数,作为返回的十进制精度的默认位数。
默认值为0。
实际返回的精度取决于平台;
超过系统中可用精度的数字将作为零返回。
示例
以下示例返回当前系统时间:
SELECT CURRENT_TIME
9:10:27下面的示例返回的是当前系统时间,精度为3位小数秒:
SELECT CURRENT_TIME(3)
9:10:34下面的嵌入式SQL示例返回当前时间。
因为这个时间是以$HOROLOG格式存储的,所以它被返回为一个整数:
ClassMethod CurrentTime()
{
&sql(SELECT CURRENT_TIME INTO :a)
IF SQLCODE'=0 {
WRITE !,"Error code ",SQLCODE }
ELSE {
WRITE !,"Current time is: ",a }
}DHC-APP> d ##class(PHA.TEST.SQLCommand).CurrentTime()
Current time is: 33104下面的例子将Contacts表中选中行的LastCall字段设置为当前系统时间:
UPDATE Contacts SET LastCall = CURRENT_TIME
WHERE Contacts.ItemNumber=:item









