2017-04-27 9 views
-3

私のアプリケーションがとして日付を生成し、 "2017-04-03T00:00:00"フォーマット、と私は"2017-04-03T00:00:00"のデータを "2017-04-02 03:30:00 + 05:30"に変換する方法?

「2017年4月3日0時00分にPostgresのDBに保存しようとしています:00 + 05:30 "

SQLクエリでは、DBに日付が正しく保存されます。

私はGROM save()方法でそれを保存しようとしているときしかし、それは ":拒否された値[2017-04-03T00:00:00]フィールド 'STARTDATE' の"

を示しています

私はorg.grails.datastore.gorm.GormInstanceApi.save() APIを使用しています。ここに私のコードスニペットがあります:

def update(name, startdate, enddate) { 
    TestExt mydomain = new TestExt (name: name, startdate:startdate, enddate:enddate) 
    if(mydomain.hasErrors() || !mydomain.save(flush:true)){ 
     println mydomain.errors 
    } 
    // TestExt.executeUpdate("update TestExt set name='"+name +"', start_date='"+startdate +"', end_date='"+enddate +"' where id=1") 
} 

誰でも私を助けることができますか? 事前に感謝します!

+0

「GROM save()」とは何ですか? – dr0i

+1

デバッグのヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[mcve]を作成する方法。 – GhostCat

+1

ここでコードを投稿しないで**与えられた答えは、デバッガを使うことです。私たちは、われわれが見ているコードだけを助けることができます。 – GhostCat

答えて

0

この値を挿入しようとしているフィールドがTIMESTAMPであると仮定します。あなたはそれをキャストしようとしましたか?

SELECT CAST('2017-04-03T00:05:00' AS TIMESTAMP); 
+0

ここで問題となっているのは、実際には 'def update(name、startdate、enddate)'が定義されているため、開始日と終了日の定義がないため、文字列や日付を受け入れます。実際の問題は渡された日付のparamsがString形式であり、日付形式である必要があることです。解決策は、デフォルトの日付形式を設定して、その言葉をグーグルで試してみることです。この質問全体に対する答えはそこにあります。申し訳ありません@ジムしかし@ママ – Vahid

関連する問題