我想在我的网格视图中显示所有时间戳记从当前日期开始不超过1年的数据。
我的时间戳格式如下:20110125-071830或yyyymmdd-hhmmss
20110125-071830
yyyymmdd-hhmmss
我试图参考:
检索不到一天的行:
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 ;
Select * from table_name WHERE timestampVal < sysdate - interval '1' year ;
但是会得到错误:literal does not match format string这意味着sysdate无法读取我的格式。
literal does not match format string
如何查询我的时间戳以提取所有一年或更短的时间?
仅供参考:timestampVal是字符串类型[varchar]
看起来以下应该工作:
Select * from table_name WHERE TO_DATE(timestampVal, 'YYYYMMDD-HH24MISS') > sysdate - interval '1' year;
另外请注意,我颠倒了比较:你曾表示希望行,其中timestampVal是 不早 于1年前- 所以timestampVal应该比当前时间减去1年更大(更新)。
timestampVal