11.4CURRENT_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.1CURRENT_TIME Parameter
ParameterDescription

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, where CURRENT_TIMESTAMP has a default precision of 3 decimals. As a result, CURRENT_TIMESTAMP is not the exact sum of CURRENT_DATE and CURRENT_TIME, unless you explicitly specify a precision (i.e. CURRENT_TIME(3) or CURRENT_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