我正在从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')
答案 0 :(得分:0)
在“ add_months(sysdate,-1)和sysdate之间使用”代替“
答案 1 :(得分:0)
感谢大家的帮助。我找到了解决方法Where (TO_DATE(SUBSTR ("Timestamp", 2, 12),'YYMMDD HH24MISS')) > (current_date - 30 days)