11.5 CURRENT_TIMESTAMP
Available inDSQL, PSQL, ESQL
TypeTIMESTAMP WITH TIME ZONE
Caution
Data type changed in Firebird 4.0 from TIMESTAMP WITHOUT TIME ZONE
to TIMESTAMP WITH TIME ZONE
. Use Section 11.12, LOCALTIMESTAMP to obtain TIMESTAMP WITHOUT TIME ZONE
.
Syntax
CURRENT_TIMESTAMP [ (<precision>) ]
<precision> ::= 0 | 1 | 2 | 3
The optional precision argument is not supported in ESQL.
Table 11.5.1 CURRENT_TIMESTAMP
Parameter
Parameter | Description |
---|---|
precision | Precision. The default value is 3. Not supported in ESQL |
CURRENT_TIMESTAMP
returns the current server date and time in the session time zone. The default is 3 decimals, i.e. milliseconds precision.
Note
The default precision of
CURRENT_TIME
is 0 decimals, soCURRENT_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_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 Section 11.14, ‘NOW’.
CURRENT_TIMESTAMP
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_TIMESTAMP
expression was introduced compared to previous versions.
In Firebird 4.0, CURRENT_TIMESTAMP
returns the TIMESTAMP 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.12, LOCALTIMESTAMP expression. In Firebird 3.0.4 and Firebird 2.5.9, LOCALTIMESTAMP
is a synonym for CURRENT_TIMESTAMP
.
In Firebird 4.0, LOCALTIMESTAMP
continues to work as it does in Firebird 3.0.4 and higher and Firebird 2.5.9 (returning TIMESTAMP [WITHOUT TIME ZONE]
), while CURRENT_TIMESTAMP
now returns a different data type, TIMESTAMP WITH TIME ZONE
.
Examples
select current_timestamp from rdb$database
-- returns e.g. 2008-08-13 14:20:19.6170
select current_timestamp(2) from rdb$database
-- returns e.g. 2008-08-13 14:20:23.1200
See alsoSection 11.4, CURRENT_TIME, Section 11.11, LOCALTIME, Section 11.12, LOCALTIMESTAMP