currentDate top-level constant
A sql expression that evaluates to the current date.
Depending on whether date times are stored as unix timestamps (the default) or as text on the database, this returns a unix timestamp or a string. In either case, the hour, minute and second fields will be set to null. Note that in the case where a formatted string is returned, the format will write the value in UTC.
Even if the date time stored was in a local timezone, this format returns
the formatted value in UTC.
For example, if your local timezone has the UTC offset +02:00
and you're
inserting a (local) DateTime
value at 12:34
, running the hour
getter
on this value would return 10
, since the datetime is at 10:34
in UTC.
To make this function return a value formatted as a local timestamp, you
can use modify
with a DateTimeModifier.localTime before invoking it,
e.g.
Variable(DateTime.now()).modify(DateTimeModifier.localTime()).hour
Implementation
const Expression<DateTime> currentDate = _DependingOnDateTimeExpression(
forIsoString: _currentDateLiteral,
forTimestamps: _DartCastExpression(
FunctionCallExpression(
'strftime',
[Constant('%s'), _currentDateLiteral],
),
null,
),
);