在mysql中怎么用sql语句输入Date类型的变量,求高手!!!

如:Date s;
String name,password;
sql="insert into users(name,password,regdate)values('"+name+" ',' "+password+" ',"+**+")";
其中**是作为String用“”引起来还是当做整数型不用引号,还是别的什么格式?

如果是直接用拼接sql语句的方式,那建议你用格式化的方式将日期格式化成yyyy-MM-dd这样的形式。
使用SimpleDateFormat进行格式化。追问

用SimpleDateFormat格式化后得到的是String类型,但mysql中的regdate是timedate类型的,我想将用java.util.Calendar中getTime()函数得到的date类型的时间用sql语句赋值到表user中的regdate属性,但是java代码运行正常,而数据库中的regdate却为空,我怀疑是赋值语句insert····有问题,应该是格式问题,不知该怎样解决??

追答

sql语句只能是字符串,所以你只需要格式化为正确的年月日拼起来就可以了
如在sql工作中你输入 insert users(name,password,regdate) values('a','b','2012-01-01');
那只要你拼接出来的sql语句输出来看是与上面的一样,那执行就不会有问题。注意单引号也要拼接进入的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-18
前面加上字符串to_date(**,'yyyy-mm-dd') 这样就行了。to_date(时间,时间格式)这个方法就可以吧String变成时间形式了。
第2个回答  2012-10-13
java中的time类型和数据库的datetime不是一个概念,你直接看他们的值就知道不是一样的
将java中的time转换成字符串然后传入进来用吧
mysql常用时间函数
now():格式 yyyy-MM-dd hhmmss
curdate():格式 yyyy-MM-dd
第3个回答  2012-10-13
我也遇到过这样的问题,大胆的对数据库里面的timedata数据用String赋值,没问题的。