当您知道毫秒时,查询Oracle DB以获取时间戳

时间:2009-10-23 16:51:06

标签: database oracle timestamp

我目前收到错误:

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

我假设这与我设置时间戳的方式有关...

所以我有这样的查询:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

但它不起作用......我不想在理想情况下将其转换为日期。是否有一些特殊的语法告诉Oracle这是一个时间戳?

4 个答案:

答案 0 :(得分:1)

您可以使用to_timestamp()函数将字符串转换为时间戳值:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458

答案 1 :(得分:0)

使用java.sql便捷方法获取该毫秒时间并将其转换为日期或时间戳。

答案 2 :(得分:0)

我认为您可以将日期列转换为char,并执行以下操作:

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

这应该允许你比较字符串,而不是日期。

答案 3 :(得分:-1)

您可以使用此查询:

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

(SYSDATE - 10/1440)表示SYSDATE - 10 Minutes

另请参阅一些示例here