Mysql 如何在grails域中捕获毫秒
我有一个在MySQL中存储数据的grails域 其中我有一个Mysql 如何在grails域中捕获毫秒,mysql,grails,time,Mysql,Grails,Time,我有一个在MySQL中存储数据的grails域 其中我有一个Date属性,它在数据库中创建了一个DateTime字段。但是,除了日期之外,我还希望捕获毫秒 有没有办法捕获毫秒 例如: Class MyClass { Date dateCreated } 在MySQL中以2014-10-06 16:21:57的形式存储数据,但我也想捕获毫秒 MySQL 5.6.4及更高版本通过定义对象的小数点数量,可以在数据库中为datetime对象节省毫秒。(请在此处阅读更多内容:)。默认情况下,Gr
Date
属性,它在数据库中创建了一个DateTime
字段。但是,除了日期之外,我还希望捕获毫秒
有没有办法捕获毫秒
例如:
Class MyClass {
Date dateCreated
}
在MySQL中以
2014-10-06 16:21:57的形式存储数据,但我也想捕获毫秒 MySQL 5.6.4及更高版本通过定义对象的小数点数量,可以在数据库中为datetime对象节省毫秒。(请在此处阅读更多内容:)。默认情况下,Grails/Gorm不会这样做。幸运的是,通过在域中定义一个sqlType可以很容易地解决这个问题,如下所示:
class ExampleDomain {
Date date
static mapping = {
date sqlType: 'datetime(3)'
}
}
您可以使用bigint(20)。如果您希望在保存实例时自动存储自unix纪元以来的纳秒数,那么groovy/grails域可能会是这样的:
class myClass {
Integer id
Long timestamp = System.nanoTime()
static mapping = {
timestamp sqlType: "bigint"
}
}
我想在MySQL中捕获需要运行查询以确定创建请求的确切时间的时间的毫秒。MySQL支持这一点,例如,如果手动创建表,则可以创建datetime(3)类型的列。我也在寻找一种方法让grails为mesqlType做到这一点:“datetime(3)”无效:“您的SQL语法有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near'(3)…”的正确语法@Mexx您运行的是哪个MySQL版本?MySQL版本是5.5.42。哦,现在我看它已经老了。我现在正在使用bigint(20)。将纳秒保存到unix时代。