是java.sql.Date()和mysql命令sysdate

时间:2013-07-26 10:33:33

标签: java mysql hibernate

java.sql.Date(),mysql命令sysdate给出完全相同的日期时间吗?

3 个答案:

答案 0 :(得分:1)

SYSDATE函数提供数据库服务器的日期和时间。 java.sql.Date没有给出任何特定日期 - 它必须初始化为特定日期,并且它只存储日期,而不是时间。 (在内部它确实存储了一个时间组件,但它没有意义,你应该忽略它。)如果你用

创建一个java.sql.Date对象
date = new java.sql.Date(System.getCurrentTimeMillis());

或类似的东西,并且您的数据库在另一台计算机上运行,​​如果两台计算机上的时钟不同步,则在调用SYSDATE时可能会得到不同的日期。

答案 1 :(得分:1)

您将在数据库系统上运行命令sysdate。它为您提供数据库服务器的系统日期。

java.sql.Date一个围绕毫秒值的瘦包装器,允许JDBC将其识别为SQL DATE值。不同的是,它是一个与sql日期接口的Java对象。 JDBC驱动程序将使用java.sql.Date对象并将其数据格式化为可接受的格式,同时将其存储在数据库中,反之亦然。

在您用一些数据提供日期之前,它本身不能给我们一个日期,它会存储年,月,日,而小时,分钟,秒和毫秒则会被忽略。

答案 2 :(得分:0)

SELECT SYSDATE(); 

输出: 2013/07/26 04:16:55

默认格式: yyyy-MM-dd hh:mm:ss

Date a=new Date();
java.sql.Date d=new java.sql.Date(a.getTime());
System.out.println(d);

输出:2013/07/26

默认格式: yyyy-MM-dd