select * from tableN where to_date(dateN,'yyyy-mm-dd')=to_date('2004-01-01','yyyy-mm-dd')
这句就提示日期在转换之前就结束了
这句就提示日期在转换之前就结束了
解决方案 »
- oracle delete 报错ora-01403
- 这两条语句的查询效率的比较,哪条效率高
- oracle中为何语句一直执行???请求帮助啊!!!
- sql聚类排序问题
- 谁用过ORACLE 中的PROC*C/C++预编译器,进来一下。。。。
- 急 .net中连接oracle数据库出现无法加载 DLL (oci.dll)
- 值得看、讨论的问题,关于在Oracle中实现定时操作的,高手们请进。
- 我在win2003上装oracle8.17的问题
- Oracle自相矛盾么?
- “Oracle JDeveloper”是什么东西?
- LINUX下,只要向ORACLE9i录入数据,控制台就没有响应,这是为什么?
- 简单问题,新手百分求救,为什么我不能直接imp oracle7-oracle9i呢?
如果直接比较又没有数据出来了。
如果直接比较又没有数据出来了。当然没数据啦
'2004-01-01' 和 "2004-01-12 12:24:23" 会相等么????
那么前10位就是年月日,直接比较不就可以了?
select * from tableN where substr(dateN,1,10)='2004-01-01'
这句你的dateN本来就是字符型的,再to_char当然不可以了
select * from tableN where to_date(dateN,'yyyy-mm-dd')=to_date('2004-01-01','yyyy-mm-dd')
这句你的日期是这样的2004-01-12 12:24:23。
'2004-01-01' 和 "2004-01-12 12:24:23"当然不可能相等了
既然你的日期格式是字符型的,那就直接截取字符串就可以了
select * from tableN where substr(dateN,1,10)='2004-01-01'这样解释你应该都明白了吧??
其实我开始以为to_char 这些函数的功能可以随后面的表达式而改变的。现在看来是不行的了。
select * from tableN where to_date(dateN,'yyyy-mm-dd')='2004-01-01'
如果dateN是date类型的话
select * from tableN where to_char(dateN,'yyyy-mm-dd')='2004-01-01'