我想在gridview中显示所有时间戳不超过当前日期1年的数据。
我的时间戳格式如下:20110125-071830
或yyyymmdd-hhmmss
我试图参考:
Retrieve rows less than a day old:
Select * from table_name WHERE DATE(timestampVal) > DATE(NOW() - INTERVAL 1 YEAR);
但缺少表达标志
我也试过各种其他人;但是,我的timestampVal与其格式化方式不同。
例如:https://community.oracle.com/thread/2207956
使用编码:Select * from table_name WHERE timestampVal < sysdate - interval '1' year ;
但得到错误:literal does not match format string
这意味着sysdate无法读取我的格式。
如何查询我的时间戳以提取一年或更短的所有内容?
仅供参考:timestampVal是字符串类型[varchar]
答案 0 :(得分:1)
看起来以下情况应该有效:
Select *
from table_name
WHERE TO_DATE(timestampVal, 'YYYYMMDD-HH24MISS') > sysdate - interval '1' year;
另请注意,我推翻了比较:您表示您希望行timestampVal
不比旧版超过1年前 - 所以timestampVal
应该更大(更新)比当前时间减去一年。
试一试。
祝你好运。