VB编程环境+Oracle数据库
时间字段名称:DT
时间存储格式示例:"10-十二月-2008 02:45:00 AM"
目的:利用VB时间变量作为条件查询,初始变量格式如T"2008-12-17 13:14:00"或"2008-12-17 01:14:00 PM”
注意:Oralce字段格式或系统时间格式均不能修改,以下几种测试结果仅供参考(F_YH为自定义函数,功能为添加字符串两边的单引号,TIME为时间变量)
测试用SQL语句1:
"SELECT * FROM T Where DT < To_Date( " & f_YH(Format(TIME, "dd-mm-yyyy hh:MM:ss AM/PM")) & ",'DD-MM-YYYY HH12:Mi:SS PM ')"
现象:“Ora01855:要求AM/A.M或PM/P.M测试用SQL语句2:
"SELECT * FROM T Where DT < To_Date( " & f_YH(Format(TIME, "dd-mm-yyyy hh:MM:ss AM/PM")) & ",'DD-MM-YYYY HH12:Mi:SS ')"
现象:“Ora01830:日期格式图片在转换整个输入字符串之前结束测试用SQL语句3:
"SELECT * FROM T Where DT < To_Date( " & f_YH(Format(TIME, "dd-mm-yyyy hh:MM:ss")) & ",'DD-MM-YYYY HH12:Mi:SS ')"
现象:上午正常,下午会出现“Ora01849:小时值必须介于1-12之间。测试用SQL语句4:
"SELECT * FROM T Where To_Date(DT,'DD-MM-YYYY HH24:Mi:SS ')< To_Date( " & f_YH(Format(TIME, "dd-mm-yyyy hh:MM:ss ")) & ",'DD-MM-YYYY HH24:Mi:SS ')"
现象:“Ora01849:(全)年度值必须介于-4713和+9999之间,皆不为0能将数据记录按时间过滤后给分结帖。
解决方案 »
- 求高手解释什么是数据完整性和一致性
- oracle 触发器的问题?
- ,我有个 test.txt 文件,现在我想把里面的数据导入到Oracle数据库中的一张表 table1 中, 具体怎么实现 ?
- 触发器有编译错误
- oracle如何导出表结构和数据
- 9个G的oracle数据库如何迁移到别的oracle服务器上,谢谢
- 用pl/sql servlet 做得网站问题
- 如何监测job的运行情况
- 表中有一个字段是NUMBER类型,但表示不了负数,可以用NUMBER类型字段存取负数吗?
- 关于 BITMAP index ?????
- 求个SQL查询语句
- 数据库迁移中关于大对象的问题(sql server 到oracle)
只要保证输入的字符串格式和formatstring的格式一样就行了。
我写出来的SQL语句运行时总会出错,能提示我解决掉也可以。
From T
Where dt between to_date('2008-6-1 12:00:00', 'yyyy-mm-dd hh24:mi:ss') and
to_date('2008-12-5 12:00:00', 'yyyy-mm-dd hh24:mi:ss');
直接用sql语句
是我看到数据库里的时间格式显示"10-十二月-2008 02:45:00 AM",以为不能直接和to_date('2008-6-1 12:00:00', 'yyyy-mm-dd hh24:mi:ss')的格式比较,所以走了弯路。
试了5楼的回复,可以了。
另外3楼的提醒我可以尝试走另一个方向,用To_char而不是to_Date,稍后我试试看,不管怎么说也是个不错的思路。