Här är hela koden för det sista svaret (för extra tydlighet).
I din data-config.xml-fil läser du datumet från DB och casta till en tidsstämpel:
select cast(STRT_DT as timestamp) as STRT_DTTS from DATES
Lägg in i en DataImportHandler-entitet som ser ut så här:
<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>
Den här frågan returnerar en oracle.sql.TIMESTAMP, men den mappas inte direkt till datumet. En skripttransformator krävs därför. Därför introducerar vi script:startDateTransform
. I samma data-config.xml kan du infoga JavaScript så här:
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;
}
Här konverterar vi tidsstämpeln till ett datum, uppdaterar kolumnvärdet och returnerar raden med den nya informationen.
Fältet STRT_DT
:
<field column="STRT_DTTS" name="STRT_DT" />
bör nu innehålla rätt datum.