如何将当前日期设置为Java中的MySQL日期列?
问题描述:
我在表中有一个DATE数据类型mysql列。我想从我的格式的Java代码设置列的值YYYY-MM-DD如何将当前日期设置为Java中的MySQL日期列?
我用下面的代码来测试这些格式..
Calendar c = Calendar.getInstance();
c.setTime(new Date());
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE;
但我得到一些奇怪的输出,如果我在控制台中打印出该值。请帮忙。我还能怎么做到这一点?
答
你所要做的是:
String d = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE)
如果我没记错的话,你还必须添加+1到每月返回偏移量(从0开始计数),而不是仅仅一个月值(这是愚蠢的对我来说,但我没有做设计)。
此外,您可能想检查SimpleDateFormat及其功能以很好的方式格式化日期。
答
在JDBC中,您可以使用setDate()
方法在准备好的语句中设置DATE值,请参阅the API of PreparedStatement。这将该值转换为数据库中的DATE类型。
PreparedStatement prep = con.prepareStatement("some query with a DATE field");
Date d = new Date(System.currentTimeMillis());
// just an example (its the java.sql.Date class, not java.util.Date)
prep.setDate(index, d);
// ...
为了得到这个java.sql.Date对象回来的日期字段的值用ResultSet class的getDate()
方法。
ResultSet res = con.executeQuery("some query with a DATE field");
Date d = res.getDate(index);
您可以用d
的物体,像java.util.Date
对象(如使用在Calendar
对象),因为它从它延伸工作。
非常感谢!这真的帮助了我。 :) – 2012-11-20 03:20:01