Запросите Oracle DB для отметок времени, когда вы знаете миллисекунды - PullRequest
0 голосов
/ 23 октября 2009

Я сейчас получаю сообщение об ошибке:

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

Я полагаю, это связано с тем, как я устанавливаю метку времени ...

Итак, у меня есть такой запрос:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

Но это не работает ... и я не хочу в идеале конвертировать его в дату. Есть ли специальный синтаксис, чтобы сообщить Oracle, что это временная метка?

Ответы [ 4 ]

1 голос
/ 24 октября 2009

Вы можете использовать функцию to_timestamp () для преобразования вашей строки в значение временной метки: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458

0 голосов
/ 16 декабря 2009

Вы можете использовать этот запрос:

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

Где (SYSDATE - 10/1440) означает SYSDATE - 10 Minutes.

Также смотрите некоторые примеры здесь .

0 голосов
/ 23 октября 2009

Я думаю, вы можете привести столбец даты к символу и сделать что-то вроде:

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

Это должно позволить вам сравнивать строки, а не даты.

0 голосов
/ 23 октября 2009

Используйте удобные методы java.sql, чтобы взять это миллисекундное время и превратить его в метку даты или времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...