【发布时间】:2012-05-10 16:57:51
【问题描述】:
表 my_table 是:
CREATE TABLE MY_TABLE(
ID NUMBER NOT NULL,
MY_DATE DATE NOT NULL);
键入以下查询:
select sysdate from dual
结果是:
10-MAG-12 21:22:32
请注意,mag = may。
现在,如果我输入这个查询:
select *
from my_table
where my_date <= sysdate
结果是:
9918 10-MAG-12 20:00:00
9915 10-MAG-12 21:00:00
9952 10-MAG-12 22:00:00
9951 10-MAG-12 23:00:00
请注意,在 my_table 中我只有这 4 条记录。为什么我看到所有记录而不是第一条和第二条记录?谢谢。
我使用 Oracle SQL Developer。
编辑:请注意,当我使用 PL/SQL 插入记录时,我会输入如下内容:
nCount NUMBER;
myDate DATE;
stringDate VARCHAR2(255);
BEGIN
nCount := 0;
stringDate := substr(to_char(trunc(sysdate)),0,9);
myDate := to_date(stringDate || ' 20:00:00','dd-mm-yyyy hh24:mi:ss');
for t in (a cursor) loop
insert into MY_TABLE(ID,MY_DATE)
values (9918,myDate+(nCount/1440));
nCount := nCount + 60;
end loop;
END;
【问题讨论】:
-
看到它正在工作..您的问题令人困惑。 sqlfiddle.com/#!4/4f136/2
-
@hkutluay 如果我手动插入它可以工作,但我需要按照我编辑的问题所示插入。
标签: sql database date plsql oracle-sqldeveloper