MS-доступ неправильный формат даты при преобразовании поля из текста в дату / время - PullRequest
4 голосов
/ 17 июня 2009

У меня есть доступ к базе данных, где все даты хранятся в тексте. поле в формате мм / дд (например, 13.03.2009, 12: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 #, если это необходимо.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 18 июня 2009

У вас есть хорошие ответы на вашу непосредственную проблему, однако вы, похоже, используете свою систему в формате dmy. Таким образом, вы должны знать следующее.

Операторы SQL требуют, чтобы даты были либо полностью однозначными, либо в формате мм / дд / гг, либо в формате мм / дд / гггг. В противном случае Access / Jet сделает все возможное, чтобы интерпретировать дату с неизвестными результатами в зависимости от конкретной даты, с которой он работает. Вы не можете предполагать, что система, в которой вы работаете, использует эти форматы даты. Таким образом, вы должны использовать логику на следующей веб-странице.

Даты возврата в формате США # мм / дд / гггг # http://www.mvps.org/access/datetime/date0005.htm

2 голосов
/ 17 июня 2009

Формат (CDate ("13.03.2009 23:32:40 PM"), "мм / дд / гггг" даст вам 13/13/2009

2 голосов
/ 17 июня 2009

Если это локальное приложение Access, оно использует формат даты и времени вашей системы, поэтому изменение настроек локализации в Windows для использования MM / DD приведет к конвертации Access таким способом, если только это не было переопределено где-то в приложении.

0 голосов
/ 17 июня 2009

Функция импорта в Access имеет приличную функцию разбора даты и позволит вам указать довольно много разных форматов. Не знаете, как лучше всего применить это к чему-то, уже находящемуся в Access, - можно быстро скопировать данные в Excel, а затем повторно импортировать их.

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