java中的查询与mysql中的查询不同

java中的查询与mysql中的查询不同,java,mysql,jdbc,Java,Mysql,Jdbc,可能重复: 如果我从consele mysql执行此操作: SELECT CREATION from MYDATABASE WHERE NAME='MyData'; 我得到2012-07-12 13:42:55 但如果从Java执行此操作: String sql = "SELECT CREATION from MYDATABASE WHERE NAME=?"; PreparedStatement ps = null; String creationQuery; ResultS

可能重复:

如果我从consele mysql执行此操作:

SELECT CREATION from MYDATABASE WHERE NAME='MyData';
我得到
2012-07-12 13:42:55

但如果从Java执行此操作:

  String sql = "SELECT CREATION from MYDATABASE WHERE NAME=?";
  PreparedStatement ps = null;
  String creationQuery;
  ResultSet rs = null;
  try 
  {
      ps = conn.prepareStatement(sql);
      ps.setString(1, "MyData");
      rs = ps.executeQuery();

      creationQuery = rs.next() ? rs.getString(1) : null;
  }
我得到了
2012-07-12 13:42:55.0


为什么?

这与以下事实有关:您从Java查询中收到的是一个,它是一个普通
util.Date
的包装器,它也可以保存纳秒。
如果查看该类的方法,您会看到它被覆盖以使用该格式

yyyy mm dd hh:mm:ss.FFFFFFF

在哪里

fffffffff

表示纳秒


尽管这两个结果表示相同的时间,但只是表示方式不同而已。

这与以下事实有关:您从Java查询中收到的是一个,它是一个常规的
util.Date
的包装,它也可以保存纳秒。
如果查看该类的方法,您会看到它被覆盖以使用该格式

yyyy mm dd hh:mm:ss.FFFFFFF

在哪里

fffffffff

表示纳秒


尽管这两个结果表示相同的时间,但只是表示形式上的差异。

查看java和sql的日期对象之间的差异非常感谢并抱歉重复查看java和sql的日期对象之间的差异非常感谢并抱歉重复