我要以时间为条件进行查询,时间是long 型。其中PTime 是数据库表中的一个列。他的类型是datetime型的,tt, 和ft是long型的。
他们是把字符串型的日期转换成long型。
但是出现了一下错误:
“将 expression 转换为数据类型 datetime 时发生算术溢出错误 ”
代码片断如下:Sting fTime="2006-03-05 00:00:22.000";//开始时间
Sting tTime="2006-03-06 00:00:22.000";//结束时间
java.util.Date ftm=sdf.parse(fTime);
ft=ftm.getTime();
java.util.Date ttm=sdf.parse(tTime);
tt=ttm.getTime();
String query="SELECT * "+
"FROM "+atabName+
" WHERE PTime < "+tt+
" and PTime > "+ ft;
"FROM "+atabName+
" WHERE PTime < '"+tTime+
"' and PTime > '"+ fTime + "'";我的测试如下,建了一个表submit:
mysql> desc submit;
+------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra
+------------+------------------+------+-----+---------------------+----------------
| id | int(10) unsigned | NO | PRI | | auto_increment |
| submitTime | datetime | NO | | 0000-00-00 00:00:00 |
+------------+------------------+------+-----+---------------------+----------------
2 rows in set (0.01 sec)
mysql> select * from submit;
+----+---------------------+
| id | submitTime |
+----+---------------------+
| 1 | 2005-10-21 10:21:21 |
| 2 | 2005-12-19 11:01:25 |
+----+---------------------+
2 rows in set (0.00 sec)mysql> select * from submit where submitTime >='2005-05-05 10:20:39' and submitT
ime <'2006-05-06 12:01:29';
+----+---------------------+
| id | submitTime |
+----+---------------------+
| 1 | 2005-10-21 10:21:21 |
| 2 | 2005-12-19 11:01:25 |
+----+---------------------+
2 rows in set (0.00 sec)mysql>
Sting fTime="2006-03-05 00:00:22.000";//开始时间
Sting tTime="2006-03-06 00:00:22.000";//结束时间
String query="SELECT * "+"FROM "+atabName+" WHERE PTime < "+fTime+" and PTime > "+ tTime;