如何将作为日期的变量的值保存到数据库中。
我的字符串如下
爪哇
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
//SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm");
Date date = parseFormatter.parse(mydate);
String formattedDate = formatter.format(date);
System.out.println("Date"+formattedDate);
return formattedDate; <<need to save its value to database lets say its value is 2013-03-19
我需要将其保存到表格中,其类型为日期。
数据库
Name Type
Date date
我想我需要将字符串转换为日期但是如何?
ps.setDate(????)
答案 0 :(得分:1)
如果mydate是yyyy-MM-dd格式的字符串,那么您可以执行以下操作
PreparedStatement ps = conn.prepareStatement("insert into t1 (date) values (?)");
ps.setDate(1, java.sql.Date.valueOf(mydate));
ps.executeUpdate();
答案 1 :(得分:0)
使用MySql中的STR_TO_DATE功能
修改强>
e.g。
INSERT INTO table (dateCol1, col2 ..)
VALUES (STR_TO_DATE('May 1, 2013','%M %d,%Y'), col2value, ...)
答案 2 :(得分:0)
MySQL了解日期。假设您使用的是PreparedStatement
,您可以使用标准JDBC stmt.setDate(n,date)
,其中n
是参数索引,date
是日期类型的Java变量。
无需进行任何字符串转换。
答案 3 :(得分:0)
我想我需要将字符串转换为日期但是如何?
如果您想将String
转换为Date
,假设您的String
为2013-03-19
String yourString = "2013-03-19";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(yourString);
此处您的String
已转换为Date
对象,但如果您需要将此特定日期设置为另一个日期对象,那么这样就不可能yourDateObj.setDate(date)
因为有Calendar yourDate = new GregorianCalendar();
yourDate.setTime(date);
在Date类中没有任何这样的直接方法,它将日期作为参数。
设置您可以使用日历的特定日期 像
Date(int year, int month, int date)
另外,您可以使用String
这样做,但现在已弃用。
或者如果您希望将Date
插入mysql
的{{1}}列,然后#function_str-to-date,我同意 Ed Heal 回答