问题描述
我正在使用MysqL,列类型为TimeStamp。我无法存储或检索毫秒。
有什么需要帮助的吗?谢谢!
public static Date getBeginAndEndTime(String time) {
DateTimeFormatter format = DateTimeFormatter.ofPattern("HHmmssSSS");
LocalTime lt = LocalTime.parse(time,format);
return Timestamp.valueOf(lt.atDate(LocalDate.Now()));
}
例如:时间值原为“ 140833222”,当我存储在数据库中时,它看起来像“ 2020-08-26 14:08:33”缺少最后一个毫秒“ 222”。
我需要存储和检索包括毫秒在内的时间。
解决方法
您应该使用数据类型BIGINT
,因为它可以存储8个字节。 DATE
字段通常仅用于Date和DateTime实现,例如LocalDateTime。由于您使用的是LocalDate,随后使用的是LocalTime,因此最好只使用DATE
类型。您的方法有效地变成了
public static Date getBeginAndEndTime(String time) {
// cache this,it's a thread-safe object
DateTimeFormatter format = DateTimeFormatter.ofPattern("HHmmssSSS");
return LocalTime.parse(time,format).atDate(LocalDate.now()));
}