Ich möchte eine ComparableExpression erstellen, die ein Datetime-Literal im generierten SQL im Dialekt des konfigurierten DBMS erzeugt. Ich habe diesen Artikel gelesen: How to get fully materialized query from querydsl, die ein Literal für einen Long-Wert erzeugt, aber ich habe kein Beispiel gesehen, das ein Datum oder Datetime erzeugt. Datums-Literal-Formatierung ist für verschiedene DBMS eigen.QueryDsl ComparableExpression zum Erstellen eines DateTime-Literals mit dem SQL-Dialekt
So in der WHERE-Anweisung möchte ich dies erhalten:
dbo.fact_table.tx_date >= {formatted date literal}
Für die {formatiert Datumsliteral}, ich möchte generieren:
'19931123 00:00:00' (for MSSQL)
und
Timestamp '1993-11-23 00:00:00' (for Teradata)
Der nächste, den ich habe, ist:
Expressions.dateTimeTemplate(Date.class, "{0}", alreadyFormattedDateString);
Aber dann muss ich das Datum selbst formatieren. Ich möchte das Date-Objekt bereitstellen und Querydsl abrufen, um die Formatierung durchzuführen.