Domanda

Attualmente sto ricevendo l'errore:

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

che presumo abbia a che fare con il modo in cui sto impostando un timestamp ...

Quindi ho una domanda come questa:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

Ma non funziona ... e non voglio convertirlo idealmente in una data. Esiste una sintassi speciale per dire a Oracle che si tratta di un timestamp?

È stato utile?

Soluzione

Penso che puoi lanciare la colonna della data su un carattere e fare qualcosa del tipo:

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

Questo dovrebbe permetterti di confrontare stringhe, non date.

Altri suggerimenti

È possibile utilizzare la funzione to_timestamp () per convertire la stringa in un valore timestamp: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458

Usa i metodi di convenienza java.sql per prendere quel millisecondo e trasformarlo in una data o un timestamp.

Puoi utilizzare questa query:

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

Dove (SYSDATE - 10/1440) significa SYSDATE - 10 minuti .

Vedi anche alcuni esempi qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top