第三十八章 SQL函数 CURTIME

126 阅读1分钟

「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战

第三十八章 SQL函数 CURTIME

返回当前本地时间的标量日期/时间函数。

大纲

{fn CURTIME()}
{fn CURTIME}

描述

``不接受任何参数。它将当前本地时间作为数据类型TIME返回。请注意,参数括号是可选的。CURTIME返回此时区的当前本地时间;它根据本地时间变量(如夏令时)进行调整。

逻辑模式下的CURTIME$HOROLOG格式返回当前本地时间; 例如,37065年。 显示模式下的CURTIME以区域设置的默认格式返回当前本地时间; 例如,10:18:27

小时以24小时格式表示。

要更改默认的时间格式,使用SET OPTION命令和TIME_FORMATTIME_PRECISION选项。

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

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

在使用嵌入式SQL时,这些数据类型的性能不同。 TIME数据类型将值存储为$HOROLOG格式的整数(从午夜开始的秒数); 在SQL中显示时,转换为时间显示格式; 当从嵌入式SQL返回时,它们作为整数返回。 TIMESTAMP数据类型以相同的格式存储和显示其值。 可以使用CASTCONVERT函数来更改时间和日期的数据类型。

示例

下面的例子都返回当前系统时间:

SELECT {fn CURTIME()} AS TimeNow

9:27:30
SELECT {fn CURTIME} AS TimeNow

9:27:42

下面的嵌入式SQL示例返回当前时间。 因为这个时间是以$HOROLOG格式存储的,所以它被返回为一个整数:

  &sql(SELECT {fn CURTIME} INTO :a)
  IF SQLCODE'=0 {
    WRITE !,"Error code ",SQLCODE }
  ELSE {
    WRITE !,"Current time is: ",a }

下面的例子将Contacts表中选中行的LastCall字段设置为当前系统时间:

UPDATE Contacts Set LastCall = {fn CURTIME()}
  WHERE Contacts.ItemNumber=:item