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 时间戳列中存储毫秒

在 JPA MySql 中存储与时区无关的时间的最佳方法

如何在 SqlAlchemy / Mysql 中存储时区感知日期时间值?

如何在 Mysql 中以 unix 毫秒为单位存储日期?

在 mysql 中存储 python timedelta 值的最佳方法是啥?

MySQL为每一行自动存储日期时间