我目前正在使用此代码在数据库中存储两个字符串(newCategory& reportDate):
String newCategory = spinnerFood.getSelectedItem().toString();
// Create an instance of SimpleDateFormat used for formatting
// the string representation of date (month/day/year)
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
// Get the date today using Calendar object.
Date today = Calendar.getInstance().getTime();
// Using DateFormat format method we can create a string
// representation of a date with the defined format.
String reportDate = df.format(today);
// Preparing post params
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", newCategory));
params.add(new BasicNameValuePair("dtime", reportDate));
ServiceHandler serviceClient = new ServiceHandler();
String json = serviceClient.makeServiceCall(URL_NEW_CATEGORY,
ServiceHandler.POST, params);
这会成功存储名称字符串。但是数据库中的日期和时间数据包含值:
0000-00-00 00:00:00
如果我将日期字符串更改为日期/时间格式,如下所示:
df.format(today);
params.add(new BasicNameValuePair("dtime", today));
我收到错误:
BasicNameValuePair中的BasicNameValuePair(String,java.lang.String)无法应用
to(String,java.util.date)
有人可以告诉我如何将日期和时间值存储到数据库中吗?
答案 0 :(得分:0)
mysql
现在将此值存储到列类型为timestamp
的{{1}} db。
现在使用jdbc
代码从db。
java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(index);//now retrieve here
答案 1 :(得分:0)
您可以将params
的日期和时间添加为格式化字符串
params.add(new BasicNameValuePair("dtime", reportDate));
然后,处理db调用的代码将使用mysql函数STR_TO_DATE(...)
将字符串格式化为所需的DateTime。
答案 2 :(得分:0)
我发现如果你想创建一个连接数据库并存储当前时间的应用程序,那么最好在sql表中创建一个Timestamp列,并使其值为CURRENT_TIME。您实际上并不需要在程序中获取当前时间,然后将其发送到您的桌面。您只需将所需的任何数据发送到表中,然后此Timestamp列将存储您将该数据发送到表的当前时间。