У меня проблема с отправкой переменной java.util.Date со временем в SQL Server 2000. Я пробовал несколько способов сделать то же самое, но не получил желаемого результата.
Я пробовал следующее:
Определил переменную как Timestamp Пример:
private Timestamp accdteHoraAcc;
При выполнении хранимой процедуры значение выглядит как гггг-мм-дд чч: мм: сс.ззз. Какое значение достигнуто в процедуре, не знаю. Значение, сохраненное в столбце: дд-мм-гггг: 12:00:00 (каждый раз).
Теперь я попытался:
@XmlSchemaType(name = "dateTime")
@XmlJavaTypeAdapter(value = DateTimeZoneAdapter.class, type = Date.class)
private Date accdteHoraAcc;
DateTimeZoneAdapter код класса
public class DateTimeZoneAdapter extends XmlAdapter<String, Date> {
SimpleDateFormat SDF_yyyyMMddTHHmmssSSS_SEPARATOR_HYPHEN = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS");
@Override
public Date unmarshal(String date) throws Exception {
return (date == null || date.isEmpty()) ? null
: ConstantesApp.SDF_yyyyMMddTHHmmssSSS_SEPARATOR_HYPHEN
.parse(date);
}
@Override
public String marshal(Date date) throws Exception {
return (date == null) ? null
: ConstantesApp.SDF_yyyyMMddTHHmmssSSS_SEPARATOR_HYPHEN
.format(date);
}
}
Кодирование выполнено для изменения в метке времени
java.sql.Timestamp accdteHoraAccTemp = null;
if (getAccdteHoraAcc() != null
&& !getAccdteHoraAcc()
.equals("")) {
accdteHoraAccTemp = new java.sql.Timestamp(getAccdteHoraAcc().getTime());
}
добавлена переменная при выполнении процедуры
prepareParameter(@variableName,accdteHoraAccTemp, java.sql.Types.TIMESTAMP);
В этом случае также при выполнении хранимой процедуры значение выглядит как гггг-мм-дд чч:мм: ss.zzz. (Получил отладочный код) Какое значение достигнуто в процедуре, не знаю. Значение, сохраненное в столбце, равно дд-мм-гггг: 12:00:00 (каждый раз).
КОД ПРОЦЕДУРЫ SQL:
@accdteHoraAcc DATETIME
INSERT INTO dbo.ABC(accdteHora) SELECT @accdteHoraAcc
accdteHora Столбец в таблице ABC имеет значение Always в формате какдд-мм-гггг 12:00.
Пожалуйста, помогите мне, что мне не хватает в коде процедуры или коде Java.
Заранее спасибо