当您知道毫秒时,查询Oracle DB以获取时间戳
题
我目前收到错误:
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
。
另请参阅此处的一些示例。
不隶属于 StackOverflow