9.5. CURRENT_TIMESTAMP

Available in

DSQL, PSQL, ESQL

Syntax

  1. CURRENT_TIMESTAMP [ (<precision>) ]
  2. <precision> ::= 0 | 1 | 2 | 3

The optional precision argument is not supported in ESQL.

Table 169. CURRENT_TIMESTAMP Parameter
ParameterDescription

precision

Precision. The default value is 0. Not supported in ESQL

Type

TIMESTAMP

Description

CURRENT_TIMESTAMP returns the current server date and time. In versions prior to 2.0, the fractional part used to be always “.0000”, giving an effective precision of 0 decimals. From Firebird 2.0 onward you can specify a precision when polling this variable. The default is 3 decimals, i.e. milliseconds precision.

Examples

  1. select current_timestamp from rdb$database
  2. -- returns e.g. 2008-08-13 14:20:19.6170
  3. select current_timestamp(2) from rdb$database
  4. -- returns e.g. 2008-08-13 14:20:23.1200

Notes

  • The default precision of CURRENT_TIME is still 0 decimals, so in Firebird 2.0 and up CURRENT_TIMESTAMP is no longer the exact sum of CURRENT_DATE and CURRENT_TIME, unless you explicitly specify a precision.

  • Within a PSQL module (procedure, trigger or executable block), the value of CURRENT_TIMESTAMP 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 'NOW'.