Неправильный формат даты MS-доступа при преобразовании поля из текста в дату/время
Вопрос
У меня есть база данных доступа, предоставленная мне, где все даты хранятся в тексте поле в формате мм/дд (например:13.03.2009 00:20:36)
Я хочу преобразовать поле в дату/время, но доступ к форматам его как дд/мм, которые делает его так, что если день больше, то 12 или нет преобразованная дата может быть неправым.
Пример текущего формата при сохранении в виде текста в БД:
3/12/2009 11:32:40 PM 3/13/2009 11:32:40 PM
Если я просто преобразую тип данных этого поля из представления дизайна таблицы от текста до даты/времени типа даты я получаю следующее:
03/12/2009 11:32:40 PM 13/03/2009 11:32:40 PM
Как мне исправить сохраненные значения?Мне все равно, в каком формате будут отображаться даты, так как я смогу. легко изменить, как это выглядит, но получать их правильно преобразовать из текста в дата/время оказалось сложным.
Предпочтительно, я бы хотел исправить это напрямую из доступа, но при необходимости я могу сделать это с C #.
Спасибо.
Решение
Если это локальное приложение Access, оно использует формат даты и времени вашей системы, поэтому изменение настроек локализации в Windows на использование MM/DD приведет к преобразованию Access таким образом, если только это не было переопределено где-то в приложении.
Другие советы
Format(CDate("13.03.2009 23:32:40"), "мм/дд/гггг" даст вам 13.03.2009
У вас есть хорошие ответы на вашу насущную проблему, однако, похоже, ваша система работает в формате dmy.Таким образом, вам следует знать следующее.
Операторы SQL требуют, чтобы даты были либо полностью однозначными, либо в формате мм/дд/гг или мм/дд/гггг.В противном случае Access/Jet сделает все возможное, чтобы интерпретировать дату с неизвестными результатами в зависимости от конкретной даты, с которой он работает.Вы не можете предполагать, что система, над которой вы работаете, использует эти форматы дат.Таким образом, вам следует использовать логику на следующей веб-странице.
Даты возврата в формате США #мм/дд/гггг#.http://www.mvps.org/access/datetime/date0005.htm
Функция импорта в Access имеет приличную функциональность анализа даты и позволяет вам указать довольно много различных форматов.Не знаю, как лучше всего применить это к чему-то, что уже есть в Access. Быстрый способ — скопировать данные в Excel, а затем повторно импортировать их.