VB.net SQL语句查询1年前的Timestamp

时间:2015-11-07 18:34:03

标签: sql oracle timestamp sysdate

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

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

1 个答案:

答案 0 :(得分:1)

看起来以下情况应该有效:

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

另请注意,我推翻了比较:您表示您希望行timestampVal 不比旧版超过1年前 - 所以timestampVal应该更大(更新)比当前时间减去一年。

试一试。

祝你好运。