Sql 查询存储为oracle数字的时间戳

Sql 查询存储为oracle数字的时间戳,sql,oracle,timestamp,Sql,Oracle,Timestamp,我有一个Oracle表,其时间戳存储为数字: TASK_DATE NUMBER(15) 当我用数字查询表时,oracle返回数据: SELECT TASK_DATE from MY_TABLE where TASK_DATE>156912000; 但是,我希望能够使用一个实际的日期,但以下操作失败 SELECT TASK_DATE from MY_TABLE where TASK_DATE>TO_TIMESTAMP ('2020-02-20','YYYY-MM-DD'); 如果

我有一个Oracle表,其时间戳存储为数字:

TASK_DATE NUMBER(15)
当我用数字查询表时,oracle返回数据:

SELECT TASK_DATE from MY_TABLE where TASK_DATE>156912000;
但是,我希望能够使用一个实际的日期,但以下操作失败

SELECT TASK_DATE from MY_TABLE where TASK_DATE>TO_TIMESTAMP ('2020-02-20','YYYY-MM-DD');

如果有人能帮我查询一下,我将不胜感激

您的时间戳看起来像是Unix时代的秒数-从1970-01-01开始。因此:

TASK_DATE > (DATE '2020-02-20' - DATE '1970-01-01') * 24 * 60 * 60

也就是说,值156912000与“2020-02-20”不对应,因此不清楚该数字真正代表的是什么。

您的时间戳看起来像Unix纪元中的秒数-自1970-01-01以来。因此:

TASK_DATE > (DATE '2020-02-20' - DATE '1970-01-01') * 24 * 60 * 60

也就是说,156912000的值与“2020-02-20”不对应,因此不清楚该数字真正代表的是什么。

我的同情是,您必须使用一个数据库,在该数据库中将日期存储为数字。这些数字背后的逻辑是什么?@kevinsky-感谢您的同情,非常感谢:@Tejash这个数字是我没有创建的遗留数据库中的unix时间戳。理想情况下,它将存储在不同类型的字段中,如日期或oracle时间戳,但我无法控制数据库我的同情是,您必须使用一个数据库,在该数据库中,他们将日期存储为数字。数字背后的逻辑是什么?@kevinsky-感谢同情,非常感谢:@Tejash这个数字是我没有创建的遗留数据库中的unix时间戳。理想情况下,它将存储在不同类型的字段中,如日期或oracle时间戳,但我无法控制数据库谢谢,它成功了,非常感谢您的回答。你是对的,这是Unix Epoc,两个日期应该是两个不同的日期。令人惊叹的谢谢,成功了,非常感谢你的回答。你是对的,这是Unix Epoc,两个日期应该是两个不同的日期。令人惊叹的