11.12. LOCALTIMESTAMP
Available inDSQL, PSQL, ESQL
TypeTIMESTAMP
Syntax
LOCALTIMESTAMP [ (<precision>) ]
<precision> ::= 0 | 1 | 2 | 3
The optional precision argument is not supported in ESQL.
LOCALTIMESTAMP Parameter| Parameter | Description |
|---|---|
precision | Precision. The default value is 3. Not supported in ESQL |
LOCALTIMESTAMP returns the current server date and time.
The default is 3 decimals, i.e. milliseconds precision.
LOCALTIMESTAMPwas introduced in Firebird 3.0.4 as a synonym of Section 11.5, “CURRENT_TIMESTAMP”. In Firebird 4,CURRENT_TIMESTAMPwill return aTIMESTAMP WITH TIME ZONEinstead of aTIMESTAMP [WITHOUT TIME ZONE], whileLOCALTIMESTAMPwill continue to returnTIMESTAMP [WITHOUT TIME ZONE]. It is recommended to switch fromCURRENT_TIMESTAMPtoLOCALTIMESTAMPfor forward-compatibility with Firebird 4.The default precision of Section 11.11, “
LOCALTIME” is 0 decimals, soLOCALTIMESTAMPis not the exact sum of Section 11.2, “CURRENT_DATE” andLOCALTIME, unless you explicitly specify a precision (i.e.LOCATIME(3)orLOCALTIMESTAMP(0)).Within a PSQL module (procedure, trigger or executable block), the value of
LOCALTIMESTAMPwill 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'”.
Examples
select localtimestamp from rdb$database
-- returns e.g. 2008-08-13 14:20:19.6170
select localtimestamp(2) from rdb$database
-- returns e.g. 2008-08-13 14:20:23.1200
See alsoSection 11.5, “CURRENT_TIMESTAMP”, Section 11.11, “LOCALTIME”