0

我想在我的网格视图中显示时间戳不超过当前日期 1 年的所有数据。

我的时间戳格式如下:20110125-071830yyyymmdd-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 ;

但得到错误:literal does not match format string这意味着 sysdate 无法读取我的格式。

如何查询我的时间戳以提取所有一年或更短的时间?

仅供参考:timestampVal 是字符串类型 [varchar]

4

1 回答 1

1

看起来以下应该有效:

Select *
  from table_name
  WHERE TO_DATE(timestampVal, 'YYYYMMDD-HH24MISS') > sysdate - interval '1' year;

另请注意,我颠倒了比较:您表示您想要不早于 1 年前的行timestampVal-因此应该timestampVal大于(更新)当前时间减去一年。

试试看。

祝你好运。

于 2015-11-07T19:01:38.863 回答