如何在grails域中捕获毫秒

时间:2014-10-06 17:04:54

标签: mysql grails time

我有一个grails域,用于在MySQL中存储数据。

在其中,我有一个Date属性,可在数据库中创建DateTime字段。但是,除了日期之外,我还希望捕获毫秒数。

有没有办法捕获毫秒?

示例:

Class MyClass {

  Date dateCreated

}

将数据存储在MySQL 2014-10-06 16:21:57中,但我也希望捕获毫秒数。

2 个答案:

答案 0 :(得分:2)

MySQL 5.6.4及更高版本可以通过定义对象的小数点数量来保存数据库中datetime对象的毫秒数。 (在此处阅读更多内容:MySQL reference manual)。默认情况下,Grails / Gorm不会这样做。幸运的是,通过在域中定义sqlType可以很容易地解决这个问题:

class ExampleDomain {
    Date date

    static mapping = {
        date sqlType: 'datetime(3)'
    }
}

答案 1 :(得分:0)

你可以使用bigint(20)。如果您希望在保存实例时自动存储unix纪元,那么您的groovy / grails域可能看起来像那样:

class myClass {

  Integer id
  Long timestamp = System.nanoTime()

  static mapping = {
    timestamp sqlType: "bigint"
  }
}