Oracle преобразует ISO Date в компьютерную дату / время - PullRequest
0 голосов
/ 11 декабря 2010

Я вставляю в таблицу БД Oracle, используя следующую строку вставки (Приблизительно - там 140 столбцов, поэтому я не буду показывать все это):

"INSERT INTO AMS_ASSET_CS_IFACEOUT VALUES ('abcdef', 'abcdef', to_date (' 2010-01-31 ',' YYYY-MM-DD '), ...) "

Затем через пару секунд я запускаю следующий фрагмент кода:

    /// <summary>
    /// Function: GetRecord
    /// Description: Creates a new AMS-Asset and populates the
    /// properties of this asset by evaluating properties provided
    /// by the OracleDataReader.
    /// </summary>
    /// <param name="reader"> One record of information from the open connection.</param>
    /// <returns> A fully created AMS-Asset record. </returns>
    private static AmsAsset GetRecord(OracleDataReader reader)
    {
        AmsAsset newRecord = new AmsAsset();

        for (int propertyIndex = 0; propertyIndex < reader.FieldCount; propertyIndex++)
        {
            string propertyName = reader.GetName(propertyIndex).ToLower();
            string propertyValue = reader.GetValue(propertyIndex).ToString();
            int propertyValueAsInteger = 0;

            bool isPropertyAnInteger = Int32.TryParse(propertyValue, out propertyValueAsInteger);

            if (isPropertyAnInteger)
            {
                newRecord.GetType().GetProperty(propertyName).SetValue(newRecord, propertyValueAsInteger, null);
            }
            else
            {
                newRecord.GetType().GetProperty(propertyName).SetValue(newRecord, propertyValue, null);
            }
        }

        return newRecord;
    }

Значение даты, которое я вставил в свою базу данных, теперь возвращается как «31.01.2010 12:00:00».

Я не совсем уверен, почему ... Какие у меня варианты?Нужно ли просто кодировать преобразование из формата, который мне возвращают, в ISO

С уважением,

Шон Андерсон

1 Ответ

1 голос
/ 11 декабря 2010

Поскольку вы вставили в базу данных, используя однозначную дату формата «ГГГГ-ММ-ДД», она правильно сохраняется в базе данных.

Когда вы считываете и отображаете эту дату, формат зависит от вашегорегиональные настройки.

Я предлагаю вам использовать явный спецификатор формата для отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...