【发布时间】:2013-01-21 16:41:09
【问题描述】:
我有一个名为 Abbonamento 的表,它具有以下属性:
Abbonamento(idAbbonamento, tipo, DataInizio, DataScadenza, ....)
DataInizio 和 DataScadenza 的类型为 DATE。
当我在此表上进行选择时,问题就出现了:
String queryAbb = "select idabbonamento, tipo, DATE_FORMAT(datainizio,'%d-%m-%Y'), DATE_FORMAT(datascadenza,'%d-%m-%Y'), ...;
prest = con.prepareStatement(queryAbb);
rs = prest.executeQuery();
while (rs.next()) {
a=new Abbonamento();
a.setIdAbbonamento(rs.getInt(1));
a.setTipo(rs.getString(2));
a.setDataInizio(rs.getDate(3));
System.out.println(rs.getDate(3));
a.setDataScadenza(rs.getDate(4));
...
}
现在,如果数据库中的 DataInizio 日期是 2013-11-05 00:00:00,我想要 05-11-2013,但 println 打印的是 0004-10-13。
上面的代码有什么问题?
【问题讨论】:
-
你使用什么数据库?
-
@GaborSch 我正在使用 DBMS MYSQL...
-
DATE_FORMAT(datecolumn,'%d-%m-%Y')should work fine。它会给你05-11-2013。 -
@MahmoudGamal 但它没有..
-
如果我在 dbms 中进行查询,结果是正确的,而如果我从 Java 打印日期,它会打印另一个值!
标签: java mysql sql date resultset