Неправильный формат даты MS-доступа при преобразовании поля из текста в дату/время

StackOverflow https://stackoverflow.com/questions/1008042

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top