Sql 在oracle中将VARCHAR2数据转换为日期

Sql 在oracle中将VARCHAR2数据转换为日期,sql,oracle11g,sqlplus,Sql,Oracle11g,Sqlplus,我在TIMESTAMP列中有以下数据 我正在尝试查询两个日期之间的数据,例如1月4日到1月18日,但我不确定如何将其转换为日期格式。以前我每天都会获取数据,并在sql查询中使用WHERE时间戳,如“2018-01-04%” 如果有人能帮助你,我将不胜感激 但是,您使用的是良好的日期格式,因此可以使用字符串比较: where timestamp >= '2018-01-04' and timestamp < '2018-01-09' 虽然这很方便,但您应该将值存储为日期

我在TIMESTAMP列中有以下数据

我正在尝试查询两个日期之间的数据,例如1月4日到1月18日,但我不确定如何将其转换为日期格式。以前我每天都会获取数据,并在sql查询中使用WHERE时间戳,如“2018-01-04%”

如果有人能帮助你,我将不胜感激

但是,您使用的是良好的日期格式,因此可以使用字符串比较:

where timestamp >= '2018-01-04' and
      timestamp  < '2018-01-09'

虽然这很方便,但您应该将值存储为日期或时间戳。将日期/时间值存储为字符串通常是不好的,尽管您的格式使其更合理。

另外-不要命名列时间戳@bobdylan,我可以知道这方面是否有任何问题吗?
where to_date(timestamp, 'YYYY-MM-DD HH24:MI:SS.F') >= date '2018-01-04' and
      to_date(timestamp, 'YYYY-MM-DD HH24:MI:SS.F') < date '2018-01-09'
where timestamp >= '2018-01-04' and
      timestamp  < '2018-01-09'