سؤال

في قاعدة البيانات الخاصة بي ، لدي نوع عمود: DateTime.
مثال بيانات العمود: 2009-02-03 19: 04: 23.0

أنا استخدم : SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); لتحديد تنسيق التاريخ الخاص بي.

أنا أستخدم Groovysql لقراءة الجداول ولكل صفوف ، أقوم بإضافة كائن عينة جديد (تم تعيينه إلى جدول جديد - 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}".
يتم تعيين جميع التواريخ على "تاريخ جديد ()" (لإغلاق وقت التنفيذ).

عبر تصحيح الأخطاء:
"$ {it.date_created}" يتم تعريفه على أنه "الثلاثاء فبراير 03 19:04:23 CST 2009" ، المقابل (2009-02-03 19: 04: 23.0). يجب أن أحصل على هذا التاريخ!

كيف يمكنني إصلاح هذه المشكلة؟ ليس لدي أي خطأ ، فقط تواريخ خاطئة.
هل هناك طريقة سهلة لتحديد تواريخاتي في SampleJ؟
بديل لـ AddSample.Datecreated = dateFormat.parse ("$ {it.date_created}")؟

هل كانت مفيدة؟

المحلول

سيتم تعيين Grails Date_created على الوقت الحالي عن طريق الاتفاقية ، تحتاج إلى إضافة

static mapping = {
        autoTimestamp false
    }

لأخذ عينة.

بدلاً من ذلك ، إعادة تسمية Datecreated إلى شيء آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top