如何在oracle中选择年初至今的所有记录?

时间:2015-03-11 14:22:43

标签: oracle timestamp

我有一个带有字段create_date(unix-timestamp)的表。如何选择过去12个月的所有记录?

由于 托马斯

2 个答案:

答案 0 :(得分:2)

您可以尝试以下内容。请记住,Unix时间戳表示自1970年1月1日午夜以来经过的秒数:

SELECT * FROM mytable
 WHERE date'1970-01-01' + NUMTODSINTERVAL(create_date, 'SECOND') >= TRUNC(ADD_MONTHS(SYSDATE, -12));

我猜测create_date的价值在1,400,000,000的范围内。

答案 1 :(得分:1)

您需要将UNIX时间戳转换为日期格式,然后使用ADD_MONTHS甚至减去它们。

- 用于查看和验证日期的SQL

select ADD_MONTHS(MYTABLE.CREATE_DATE, -12) from MYTABLE;

- 用于回答问题的SQL

select *
from MYTABLE
where MYTABLE.CREATE_DATE > ADD_MONTHS(SYSTIMESTAMP, -12);