在我的Oracle11gDB中有一个名为end_time (类型为时间戳(6))的字段。我的要求是获取比我使用远程DB的当前时间更长的stamp.As记录,我需要我的oracle数据库服务器的当前时间。
经过一些研究,我了解到SYSTIMESTAMP返回DB所在机器的当前时间戳。
所以我只添加了一个条件,比如end_time > SYSTIMESTAMP,但是它不过滤记录。我的结束时间是时间戳(6).
我必须使用任何转换函数吗?我怎么才能从Hibernate做这件事呢?有什么想法吗?
发布于 2012-12-06 16:11:42
您能否进一步解释一下“不过滤记录”,结果中的行太多还是很少?
你的情况看上去很好:
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.000000000https://stackoverflow.com/questions/13741729
复制相似问题