12.5. CURRENT_TIMESTAMP
Current server date and time in the session time zone, with time zone information
TypeTIMESTAMP WITH TIME ZONE
Data type changed in Firebird 4.0 from TIMESTAMP WITHOUT TIME ZONE
to TIMESTAMP WITH TIME ZONE
.
Use Section 12.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.
CURRENT_TIMESTAMP
ParameterParameter | Description |
---|---|
precision | Precision. The default value is 3. Not supported in ESQL |
The default is 3 decimals, i.e. milliseconds precision.
The default precision of CURRENT_TIME
is 0 decimals, so 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_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 12.14, “'NOW'
”.
CURRENT_TIMESTAMP
and Firebird Time Zone SupportFirebird 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.
Since 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 12.12, “LOCALTIMESTAMP
” expression.
In Firebird 3.0.4 and Firebird 2.5.9, LOCALTIMESTAMP
is a synonym for CURRENT_TIMESTAMP
.
In Firebird 5.0, LOCALTIMESTAMP
returns TIMESTAMP [WITHOUT TIME ZONE]
, while CURRENT_TIMESTAMP
returns 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 12.4, “CURRENT_TIME
”, Section 12.11, “LOCALTIME
”, Section 12.12, “LOCALTIMESTAMP
”