Interrogez la base de données Oracle pour connaître les horodatages lorsque vous connaissez les millisecondes.

StackOverflow https://stackoverflow.com/questions/1614673

  •  06-07-2019
  •  | 
  •  

Question

Je reçois actuellement l'erreur:

java.sql.SQLException: ORA-01843: not a valid month

ce que je suppose est lié à la façon dont je mets un horodatage ...

J'ai donc une requête comme celle-ci:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

Mais ça ne marche pas ... et je ne veux pas être obligé de le convertir en une date idéale. Existe-t-il une syntaxe spéciale pour indiquer à Oracle qu’il s’agit d’un horodatage?

Était-ce utile?

La solution

Je pense que vous pouvez convertir la colonne de date en un caractère et faire quelque chose comme:

select * from A_TABLE where to_char(A_TIMESTAMP_COL) < '1252944840000'

Cela devrait vous permettre de comparer des chaînes et non des dates.

Autres conseils

Vous pouvez utiliser la fonction to_timestamp () pour convertir votre chaîne en une valeur d'horodatage: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458

Utilisez les méthodes pratiques java.sql pour prendre cette milliseconde et la transformer en date ou en horodatage.

Vous pouvez utiliser cette requête:

SELECT * FROM A_TABLE WHERE TIMESTAMP < (SYSDATE - 10/1440)

(SYSDATE - 10/1440) signifie SYSDATE - 10 minutes .

Voir aussi des exemples de ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top