0

在我的数据库中,我有一个列类型:日期时间。
列数据示例:2009-02-03 19:04:23.0

我正在使用 :SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");来定义我的日期格式。

我正在使用 groovySQL 读取表,并且对于每一行,我正在添加一个新的 SampleJ 对象(映射到一个新表 - SampleJ)。

这是我的关闭:

def sampleQuery(int dataset) {

        sqlModule.eachRow("""
            select b.*
            from dataset a, array_data b
            where dataset_id = "${dataset}"
            and a.array_data_id = b.array_data_id ;""")
            {
              def addSample= new SampleJ(it.toRowResult())
              addSample.id = "${it.array_data_id}" as int
              addSample.dateCreated = dateFormat.parse("${it.date_created}")
              //addSample...(more columns)
              addSample.save()
            }
    }

当我检查我的临时表“SampleJ”时,我的所有日​​期都与“${it.date_created}”不匹配。
所有日期都设置为“new Date()”(关闭执行时间)。

通过调试器:
“${it.date_created}”定义为“Tue Feb 03 19:04:23 CST 2009”,对应于 (2009-02-03 19:04:23.0)。我应该有这个约会!

我该如何解决这个问题?我没有错误,只是日期错误。
有没有一种简单的方法可以在 SampleJ 中定义我的日期?
addSample.dateCreated = dateFormat.parse("${it.date_created}") 的替代方法?

4

1 回答 1

1

Grails 将按照约定将 date_created 设置为当前时间,您需要添加

static mapping = {
        autoTimestamp false
    }

样品J。

或者,将 dateCreated 重命名为其他名称。

于 2010-02-16T01:15:51.340 回答