如何从当前日期开始获取30天的数据

时间:2018-07-11 08:55:11

标签: oracle db2

我正在从DB2数据库中获取数据。我只想提取过去30天的数据。怎么做到呢 ? 我尝试了以下查询,但它提供了6月6日至6月30日的数据。但我想要6月11日至7月11日之间的数据-确切是30天。子字符串用于转换DB2时间戳。

select TO_DATE (   SUBSTR ("Timestamp", 4, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 6, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 2, 2)
                        || '  '
                        || SUBSTR ("Timestamp", 8, 2)
                        || ':00',
                        'MM/DD/YY  HH24:MI'
                       ) as create_date, * from  xyz WHERE TO_DATE (   SUBSTR ("Timestamp", 4, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 6, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 2, 2)
                        || '  '
                        || SUBSTR ("Timestamp", 8, 2)
                        || ':00',
                        'MM/DD/YY  HH24:MI'
                       ) > add_months(trunc(sysdate,'mm'),-1) and TO_DATE (   SUBSTR ("Timestamp", 4, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 6, 2)
                        || '/'
                        || SUBSTR ("Timestamp", 2, 2)
                        || '  '
                        || SUBSTR ("Timestamp", 8, 2)
                        || ':00',
                        'MM/DD/YY  HH24:MI'
                       ) < trunc(sysdate, 'mm')

2 个答案:

答案 0 :(得分:0)

在“ add_months(sysdate,-1)和sysdate之间使用”代替“

答案 1 :(得分:0)

感谢大家的帮助。我找到了解决方法Where (TO_DATE(SUBSTR ("Timestamp", 2, 12),'YYMMDD HH24MISS')) > (current_date - 30 days)