mysql中存储时间的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中存储时间的问题相关的知识,希望对你有一定的参考价值。
我们从页面接受到得数据是String类型的,用DateFormat df1 = new SimpleDateFormat("yy-MM-dd"); Date time=df1.parse("1212-12-12"); 然后打印time就是Tue Apr 10 00:00:00 CST 2012这种格式的,而mysql中存的时间格式是1212-12-12,在插入的时候会自动转换么??
要按你的数据库字段了……MYSQL数据库时间字段可以设大概三种类型varchar(或char)——将时间以字符串的形式保存,这是最傻的一种办法,但是如果不考虑转换格式和执行效率什么的倒是可以凑合下datetime(或date)——MYSQL数据库的时间格式,其实也是一种字符串格式,但是他有自己的格式标准,不合符的不能插入和修改int(tinyint)——以时间戳格式保存时间,再使用的时候再去程序里做转换,这是执行效率最高的办法 参考技术A 那要看你的orm映射关系了使用 Hibernate 在 MySQL 时间戳列中存储毫秒
【中文标题】使用 Hibernate 在 MySQL 时间戳列中存储毫秒【英文标题】:Storing milliseconds in MySQL timestamp column using Hibernate 【发布时间】:2016-04-22 16:36:16 【问题描述】:我正在尝试使用 Hibernate 在 MySQL 的时间戳列中存储带有毫秒的 java Date
,但毫秒始终存储为 .000。
hibernate中列的定义如下:
@Type(type="timestamp")``
private Timestamp timestamp;
在 DB 中,该列被声明为 TIMESTAMP(3)
我尝试了不同的组合,包括Date
,但都没有帮助。
我使用 MySQL 5.6.25、Connector/J 版本 5.1.37、Hibernate 4.0.1。
我已经研究了一段时间,但仍然找不到任何适合我的解决方案。
任何帮助将不胜感激。
【问题讨论】:
我也有同样的问题,你解决了吗? 【参考方案1】:您是否尝试过使用DATETIME(3)
或TIMESTAMP(4)
?我相信这两个都会给你毫秒。如果您试图获得交互发生的毫秒时间,例如行更新,您可以使用ON UPDATE DATETIME(3)
【讨论】:
以上是关于mysql中存储时间的问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Hibernate 在 MySQL 时间戳列中存储毫秒
如何在 SqlAlchemy / Mysql 中存储时区感知日期时间值?