我目前收到错误:

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

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

所以我有这样的查询:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

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

有帮助吗?

解决方案

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

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 Minutes

另请参阅此处的一些示例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top