select * from test where date >= to_date('2007-11-07','yyyy-mm-dd') and date <= to_date('2007-11-08','yyyy-mm-dd');
SQL语句用这个办法查询:select * From table1 where date1 between date'2007-1-1' and date'2008-1-1'或者用 timestamp 也可以。select * from Table1 where date1 between timestatmp'2007-1-1 0:0:0' and timestamp'2007-12-31 23:59:59' 建议使用 OracleClient 里面的组件来查询,查询的日期应该使用 OracleParameter 来定义。可以看看 OracleClients 的帮助。 日期控件就用 VS2005 自带的就可以了。
各位高手们,还是不行呀,能帮我看看错在那里吗,应该怎样写-- OracleConnection Conn = new OracleConnection ConfigurationSettings.AppSettings["constr"]); Conn.Open(); OracleCommand Cmd = new OracleCommand(); Cmd.Connection = Conn; Cmd.CommandText = "SELECT * FROM ABC WHERE C BETWEEN " + dtxt1.Text + " AND " + dtxt2.Text; ........... 错误信息为:ORA-00905: 缺少关键字 可是我看不缺少关键字。在线等......
3楼的应该可以吧 缺少关键字是因为你直接把dtxt1.Text的值带到sql语句中了 try. Cmd.CommandText = "SELECT * FROM ABC WHERE C >= TO_CHAR('" + dtxt1.Text + "', 'YYYY-MM-DD') AND C <= TO_CHAR('" + dtxt2.Text+"', 'YYYY-MM-DD') "; 日期格式要转换成YYYY-MM-DD
我的时间里有:小时,分和秒的 上面的语句查询得到的错误信息是:ORA-01722: 无效数字 我用控件得到的时期为别为如下: dtxt1.text=2007-11-1 11:10:10 dtxt2.text=2007-11-14 12:10:10改为如下SQL查询还是不行呀--- OracleConnection Conn = new OracleConnection(ConfigurationSettings.AppSettings["constr"]); OracleCommand Cmd = new OracleCommand(); Cmd.Connection = Conn; Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE C > = TO_CHAR( '"+dtxt2.Text+"','YYYY-MM-DD HH:MM')AND C <=TO_CHAR( '"+dtxt1.Text+ "','YYYY-MM-DD HH:MM')"; 得到的结果还是:ORA-01722: 无效数字。各位高手们,能帮我看看错在那里吗。在线----
改为Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE (C >=" + Convert.ToChar(dtxt2.Text) + ") AND (C <=" + Convert.ToChar(dtxt1.Text) + ")" 也不行,该怎样写?高手能指都一下吗?
试试Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE (C > = '" + Convert.ToChar(dtxt2.Text) + "') AND (C <= '" + Convert.ToChar(dtxt1.Text) + "') " 行不行?
这样的写法也不行:Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE C >=To_Char('"+dtxt2.Text+"','YYYY-MM-DD HH:24MM:SS') AND C <=To_Char('"+dtxt1.Text+"','YYYY-MM-DD HH:24MM:SS')" 错误为:ORA-01722: 无效数字 我现在试试9楼的,先谢谢了
还是不行呀。 Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE (C >='"+Convert.ToChar(dtxt2.Text)+"') AND (C <='"+Convert.ToChar(dtxt1.Text)+"')" ; 错误信息为: String must be exactly one character long 是什么意思
Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE C > =To_Date( ' "+dtxt2.Text+ " ', 'YYYY-MM-DD HH:24MM:SS ') AND C <= To_Date( ' "+dtxt1.Text+ " ', 'YYYY-MM-DD HH:24MM:SS ') " ;
oracle的时间处理方式和sqlserver不同,需要注意一下。
用to_date()取出年月日(需要的话),
不过不知道能不能用最简单的方式
data1 > datacolumn
and data2 < datacolumn。
去oracle版看看。
where date1 between date'2007-1-1' and date'2008-1-1'或者用 timestamp 也可以。select * from Table1
where date1 between timestatmp'2007-1-1 0:0:0' and timestamp'2007-12-31 23:59:59'
建议使用 OracleClient 里面的组件来查询,查询的日期应该使用 OracleParameter 来定义。可以看看 OracleClients 的帮助。
日期控件就用 VS2005 自带的就可以了。
OracleConnection Conn = new OracleConnection ConfigurationSettings.AppSettings["constr"]);
Conn.Open();
OracleCommand Cmd = new OracleCommand();
Cmd.Connection = Conn;
Cmd.CommandText = "SELECT * FROM ABC WHERE C BETWEEN " + dtxt1.Text + " AND " + dtxt2.Text;
...........
错误信息为:ORA-00905: 缺少关键字
可是我看不缺少关键字。在线等......
缺少关键字是因为你直接把dtxt1.Text的值带到sql语句中了
try.
Cmd.CommandText = "SELECT * FROM ABC WHERE C >= TO_CHAR('" + dtxt1.Text + "', 'YYYY-MM-DD') AND C <= TO_CHAR('" + dtxt2.Text+"', 'YYYY-MM-DD') "; 日期格式要转换成YYYY-MM-DD
上面的语句查询得到的错误信息是:ORA-01722: 无效数字
我用控件得到的时期为别为如下:
dtxt1.text=2007-11-1 11:10:10
dtxt2.text=2007-11-14 12:10:10改为如下SQL查询还是不行呀--- OracleConnection Conn = new OracleConnection(ConfigurationSettings.AppSettings["constr"]);
OracleCommand Cmd = new OracleCommand();
Cmd.Connection = Conn;
Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE C > = TO_CHAR( '"+dtxt2.Text+"','YYYY-MM-DD HH:MM')AND C <=TO_CHAR( '"+dtxt1.Text+ "','YYYY-MM-DD HH:MM')";
得到的结果还是:ORA-01722: 无效数字。各位高手们,能帮我看看错在那里吗。在线----
错误为:ORA-01722: 无效数字
我现在试试9楼的,先谢谢了
Cmd.CommandText = "SELECT * FROM KRL.ABC WHERE (C >='"+Convert.ToChar(dtxt2.Text)+"') AND (C <='"+Convert.ToChar(dtxt1.Text)+"')" ;
错误信息为: String must be exactly one character long
是什么意思
日期格式无法识别
ORA-01821: 日期格式无法识别
我写错了,把TO_DATE写成TO_CHAR了