Как извлечь только определенную дату / время в следующем формате: (время am / pm (EST) дата) в доступе vba - PullRequest
0 голосов
/ 22 мая 2019

Мне было поручено просмотреть базу данных, в которой столбец посвящен описанию события, произошедшего в бизнесе, и разбить описание на несколько отдельных столбцов. Лица, которые вводят эти сообщения, дают базовое описание события, а также время и дату, когда оно произошло. В конце концов эти команды vba будут переведены в эквиваленты SQL, чтобы программисты могли внедрить это в систему, но сейчас я работаю в vba (которую я только начал изучать вчера), чтобы я мог выполнять запросы, чтобы увидеть, является ли код моим м на самом деле работает.

В любом случае, у меня проблема с формальной датой и временем. Одна из записей:

12: 13 (EST) 30 июля

другой пример:

01: 49 (GMT) 13 февраля.

Как вы можете видеть, они используют сокращения только для некоторых месяцев и сообщают время в разных часовых поясах, что делает его еще более сложным.

Некоторые записи не имеют начального 0 для времени.

Мне было интересно, есть ли у вас идеи о том, с чего начать. Первоначально я думал о поиске (EST) или (GMT) частей строки, а затем вынул кусок по обе стороны от него, но я не совсем уверен, что это сработает, поскольку некоторые месяцы сокращены, а некоторые - нет. имеют ведущие нули.

Кроме того, я должен сказать, что это время находится в самой длинной строке сообщения. Там нет никакого стандарта на то, где эти времена помещаются в строке.

Любая помощь была бы фантастической - действительно, если бы вы могли просто указать мне правильное направление или даже сказать, что это того не стоит, это было бы большой помощью.

Спасибо!

1 Ответ

0 голосов
/ 22 мая 2019

Вы можете использовать выражение вроде этого:

TextDate = "12:13 a.m. (EST) July 30"
TrueDate = CDate(Split(TextDate, ")")(1)) + CDate(Replace(Split(TextDate, "(")(0), ".", ""))

Это, однако, не учитывает часовой пояс - это было бы своей задачей.И он не имеет представления о году, поэтому текущий год возвращается.

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