Запросите Oracle DB для отметок времени, когда вы знаете миллисекунды

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

  •  06-07-2019
  •  | 
  •  

Вопрос

В настоящее время я получаю сообщение об ошибке:

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

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

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

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top