我的Oracle 11g数据库中有一个名为end_time的字段(类型为timestamp(6))。我的要求是获取大于当前时间戳的记录。当我使用远程数据库时,我需要我的oracle数据库服务器的当前时间。
经过一些研究后我才知道 SYSTIMESTAMP 会返回DB所在机器的当前时间戳。
所以我只是提出了像end_time>这样的条件。 SYSTIMESTAMP,但它不会过滤记录。我的结束时间是timestamp(6)类型。
我必须使用任何转换功能吗?我怎么能从Hibernate做到这一点?有什么想法吗?
答案 0 :(得分:0)
您能否进一步解释“不过滤记录”,结果中的行数太少或者很少?
你的情况看起来绝对正常:
CREATE TABLE mytable (ts TIMESTAMP(6));
INSERT INTO mytable (ts) VALUES (TIMESTAMP '2012-12-06 17:00:00');
INSERT INTO mytable (ts) VALUES (TIMESTAMP '2012-12-06 18:00:00');
SELECT SYSTIMESTAMP FROM DUAL;
06.12.2012 17:10:38.347629000 +01:00
SELECT * FROM mytable WHERE ts > SYSTIMESTAMP;
06.12.2012 18:00:00.000000000
SELECT * FROM mytable WHERE ts < SYSTIMESTAMP;
06.12.2012 17:00:00.000000000