从java中的mysql获取DateTime列

时间:2015-05-14 06:37:52

标签: java mysql datetime

在mysql上次读取TimeStamp是Datetime的列。我想根据上次读取时间戳获取aggreagteUsage。

上次阅读TimeStamp是yyy-mm-dd hr:min:se格式(例如:2015-03-02 09:15:36)

sql = "select aggregateUsage  from sensorhourlyaggregates where sensorId=250   
and lastReadingTimestamp =?";
PreparedStatement prepStmt;
prepStmt = (PreparedStatement) conn.prepareStatement(sql);
Timestamp sbegin = new java.sql.Timestamp(date.getTime());
prepStmt.setTimestamp(1, sbegin);   

Sbegin is in yyy-mm-dd hr:min:se.nanosec format (EX:2015-03-02 09:15:36.00)

由于两种格式不同,我无法获取数据。如何删除
   时间戳的毫秒数。我试过了     Clendar.clear(calendar.miliseconds)但我无法获取

2 个答案:

答案 0 :(得分:0)

您必须将时间戳转换为日期,以下代码可能会对您有帮助。

Timestamp sbegin = new Timestamp(/* Pass Timestamp from DB */);
Date date = new Date(sbegin.getTime());
System.out.println(date);

答案 1 :(得分:0)

这与日期格式无关,您没有获得任何记录,因为数据库中的任何记录都没有您在查询中提供的确切时间戳,因为您使用的是等号(=)在你的查询中。

如果您想要特定日期的记录,则需要更改查询(因为列名表明它是时间戳)

`Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date dateWithoutTime = cal.getTime();`