我有一个带有字段create_date(unix-timestamp)的表。如何选择过去12个月的所有记录?
由于 托马斯
答案 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);