The FLOOR operator (on dates) is currently broken for all jdbc dialects.
The syntax allowed by the parser looks like: "FLOOR(datetime to timeUnit)".
However no jdbc dialect (as far as I'm aware) actually name the function FLOOR:
In postgres: DATE_TRUNC('year', my_datetime)
In hsqldb: TRUNC ( my_datetime, 'YYYY' )
In oracle: TRUNC(my_datetime, 'YEAR')
In mysql: There's no direct equivalent in mysql (though it could be emulated with some nasty timestamp diffing)
The other issue is that the timeUnits are sometimes also named differently by each dialect (e.g. 'YYYY' in hsqldb).
- relates to
CALCITE-1841 Create handlers for JDBC dialect-specific generated SQL