0

私のデータベースでは、列の型が datetime です。
列データ例: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
    }

SampleJへ。

または、dateCreated の名前を別の名前に変更します。

于 2010-02-16T01:15:51.340 に答える