Berikut kode lengkap untuk mengikuti jawaban terakhir (untuk kejelasan ekstra).
Dalam file data-config.xml Anda, baca tanggal dari DB dan masukkan ke stempel waktu:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
Masukkan ke dalam entitas DataImportHandler, yang terlihat seperti ini:
<entity name="startDate" transformer="script:startDateTransform"
query="select cast(STRT_DT as timestamp) as STRT_DTTS from DATES" >
<field column="STRT_DTTS" name="STRT_DT" />
</entity>
Kueri ini akan mengembalikan oracle.sql.TIMESTAMP, tetapi tidak akan dipetakan secara langsung hingga saat ini. Oleh karena itu, diperlukan trafo skrip. Jadi kami memperkenalkan script:startDateTransform
. Dalam data-config.xml yang sama, Anda dapat menyisipkan JavaScript seperti ini:
function startDateTransform(row){
// Get the timestamp and convert it to a date
var dateVal = row.get("STRT_DTTS").dateValue();
// Put the correct date object into the original column
row.put("STRT_DTTS", dateVal);
return row;
}
Di sini kami mengonversi stempel waktu menjadi tanggal, memperbarui nilai kolom, dan mengembalikan baris dengan informasi baru.
Kolom STRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
sekarang harus berisi tanggal yang benar.