本来觉得这问题不难,可是调了半天,总是在报错:
表里有个时间字段,格式:2010-11-02 00:38:23,varchar2类型的。想写个sql查询下2010-11-02这天或是某一天的信息数,一直报错,invalid number。网上看了别人也是这么写的,都说没问题。
select * from t_acsrecord where to_char(accesstime,'yyyy-mm-dd') = to_char(sysdate,'yyyy-mm-dd')
(ORA-01722:invalid number)
select * from t_acsrecord where trunc(accesstime) = trunc(sysdate)
(ORA-00932:inconsistent datatypes:expected NUMBER got DATE)应该是类型不匹配吧,哪位高人支支招啊
表里有个时间字段,格式:2010-11-02 00:38:23,varchar2类型的。想写个sql查询下2010-11-02这天或是某一天的信息数,一直报错,invalid number。网上看了别人也是这么写的,都说没问题。
select * from t_acsrecord where to_char(accesstime,'yyyy-mm-dd') = to_char(sysdate,'yyyy-mm-dd')
(ORA-01722:invalid number)
select * from t_acsrecord where trunc(accesstime) = trunc(sysdate)
(ORA-00932:inconsistent datatypes:expected NUMBER got DATE)应该是类型不匹配吧,哪位高人支支招啊
解决方案 »
- case when求助!!
- 存储字段的类型
- 缺少表达式
- 因工作需要要使用Oracle,烦请高手推荐几本优秀的Oracle入门书籍。本人有C++/MFC基础,对SQL略知一二。
- 借刚开学之旋风散分50,问小问题一个在线等!!!!!!!外加顶者皆可拿分!
- [续]看看这个怎么写update?
- 怎么设置放火墙可以让放火墙外的用户可以连接放火墙内的ORACLE服务器?
- [初学ORACLE] C语言连接数据库程序编译不通过!
- oracle数据库中要是想建立一个存储过程,使其返回一个记录集,应该怎么写啊?into到哪里啊?
- 在PL/SQL环境下,调试带有输出参数据的过程,请问该怎么调用?如何定义输出变量?
- 怎么在一个有(+)的sql里,再关联另1个表里的数据
- 根据1条记录里的1个字段拆分成多条记录
where
to_date(accesstime,'yyyy-mm-dd hh24:mi:ss') =
to_date(sysdate,'yyyy-mm-dd hh24:mi:ss')或者这样:select * from t_acsrecord
where
trunc(to_date(accesstime,'yyyy-mm-dd hh24:mi:ss')) = trunc(sysdate)
where
trunc(to_date(accesstime,'yyyy-mm-dd hh24:mi:ss'),'dd') =
trunc(sysdate,'dd')
如果accesstime列上建了索引的话使用函数会使索引失效.所以可以使用下面的方式查询
SELECT *
FROM t_acsrecord
WHERE accesstime >= TO_CHAR (TRUNC (SYSDATE), 'yyyy-mm-dd hh24:mi:ss')
AND accesstime < TO_CHAR (TRUNC (SYSDATE + 1), 'yyyy-mm-dd hh24:mi:ss')