11.4 CURRENT_TIME
Available inDSQL, PSQL, ESQL
TypeTIME WITH TIME ZONE
Caution
Data type changed in Firebird 4.0 from TIME WITHOUT TIME ZONE
to TIME WITH TIME ZONE
. Use Section 11.11, LOCALTIME to obtain TIME WITHOUT TIME ZONE
.
Syntax
CURRENT_TIME [ (<precision>) ]
<precision> ::= 0 | 1 | 2 | 3
The optional precision argument is not supported in ESQL.
Table 11.4.1 CURRENT_TIME
Parameter
Parameter | Description |
---|---|
precision | Precision. The default value is 0. Not supported in ESQL |
CURRENT_TIME
returns the current server time in the session time zone. The default is 0 decimals, i.e. seconds precision.
Note
CURRENT_TIME
has a default precision of 0 decimals, whereCURRENT_TIMESTAMP
has a default precision of 3 decimals. As a result,CURRENT_TIMESTAMP
is not the exact sum ofCURRENT_DATE
andCURRENT_TIME
, unless you explicitly specify a precision (i.e.CURRENT_TIME(3)
orCURRENT_TIMESTAMP(0)
).Within a PSQL module (procedure, trigger or executable block), the value of
CURRENT_TIME
will remain constant every time it is read. If multiple modules call or trigger each other, the value will remain constant throughout the duration of the outermost module. If you need a progressing value in PSQL (e.g. to measure time intervals), use Section 11.14, ‘NOW’.
CURRENT_TIME
and Firebird 4.0 Time Zone Support
Firebird 4.0 added support for time zones. As part of this support, an incompatibility with the CURRENT_TIME
expression was introduced compared to previous version.
In Firebird 4.0, CURRENT_TIME
returns the TIME WITH TIME ZONE
type. In order for your queries to be compatible with database code of Firebird 4.0 and higher, Firebird 3.0.4 and Firebird 2.5.9 introduced the Section 11.11, LOCALTIME expression. In Firebird 3.0.4 and Firebird 2.5.9, LOCALTIME
is a synonym for CURRENT_TIME
.
In Firebird 4.0, LOCALTIME
continues to work as it does in Firebird 3.0.4 and higher and Firebird 2.5.9 (returning TIME [WITHOUT TIME ZONE]
), while CURRENT_TIME
now returns a different data type, TIME WITH TIME ZONE
.
Examples
select current_time from rdb$database
-- returns e.g. 14:20:19.0000
select current_time(2) from rdb$database
-- returns e.g. 14:20:23.1200
See alsoSection 11.5, CURRENT_TIMESTAMP, Section 11.11, LOCALTIME, Section 11.12, LOCALTIMESTAMP