Как отправить Дата со временем в хранимую процедуру в SQL Server 2000 - PullRequest
0 голосов
/ 01 ноября 2019

У меня проблема с отправкой переменной 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.

Заранее спасибо

...