J'ai deux colonnes dans ma table, créées (TIMESTAMP) et à vie (BIGINT). La durée de vie est représentée en secondes. Je voudrais ajouter la colonne de durée de vie à la colonne timestamp et comparer ce résultat à une autre date.Derby SQL Timestamp Arithmétique et syntaxe d'échappement JDBC
Je référencent derby manual et trouvé un soutien pour TIMESTAMPADD dans la section "syntaxe d'échappement JDBC pour le mot clé fn":
{fn FunctionCall} TIMESTAMPADD (intervalle, integerExpression, timestampExpression)
Okay donc j'ai essayé:
SELECT i.messageId FROM ServerMessageEntity i
WHERE {fn TIMESTAMPADD(SQL_TSI_SECOND, i.lifetime, i.created)} > :now
*: est maintenant un paramètre je passe par:
query.setParameter
Unfortunitly-je obtenir l'exception suivante:
Exception Description: Erreur de syntaxe analyse syntaxique de la requête [SELECT i.messageId DE ServerMessageEntity i OÙ {fn TIMESTAMPADD (SQL_TSI_SECOND, i.lifetime, i.created)}>: maintenant], inattendu char [{].
Il semble que la solution serait d'ajouter les secondes à l'horodatage créé et que le résultat soit un autre horodatage. Toute aide ou syntaxe pour ce faire serait appréciée. Merci!
Autres informations: J'utilise 12c Oracle TopLink (12.1.2) pour ORM et Derby 10.10.2.0