Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование текста в дату / 5 сообщений из 5, страница 1 из 1
04.04.2019, 15:09
    #39796540
a.naumov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в дату
Друзья, здравствуйте!

Задача достаточно банальная, может у кого есть уже готовая процедура (функция ...) Помогите, пожалуйста.

Есть импортированные данные в формате: 11 апр 2011, надо поместить в таблицу БД в виде: 11.04.2011 (т.е. в формате даты).
Заранее спасибо большое!
...
Рейтинг: 0 / 0
04.04.2019, 15:41
    #39796582
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в дату
Т.е. строго вот так - 2 цифры число, 3 буквы месяц, 4 цифры год? без косяков?
Тогда вообще не понимаю проблемы - CDate("11 апр 2011") даёт как раз 11.04.2011 в формате даты.
...
Рейтинг: 0 / 0
04.04.2019, 16:24
    #39796651
Преобразование текста в дату
Согласен с Akina, но это жестко завязано на параметры системы. Кстати, Cdate("11 апреля 2019") тоже вернет 11.04.19

Набросал функцию, которая для вашего варианта возвращает нужный результат или Null, если передан неправильный текст.
Сюда можно добавить варианты на английском и/или других языках, полное название месяца в разных падежах и т.д.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Function ConvertTextDateToDate(Text$)
Dim v
    v = Split(Text, " ")
 If UBound(v) <> 2 Then ConvertTextDateToDate = Null: Exit Function
 Select Case v(1)
 Case "янв": v(1) = 1
 Case "фев": v(1) = 2
 Case "мар": v(1) = 3
 Case "апр": v(1) = 4
 Case "май": v(1) = 5
 Case "июн": v(1) = 6
 Case "июл": v(1) = 7
 Case "авг": v(1) = 8
 Case "сен": v(1) = 9
 Case "окт": v(1) = 10
 Case "ноя": v(1) = 11
 Case "дек": v(1) = 12
 Case Else
    ConvertTextDateToDate = Null: Exit Function
 End Select
    ConvertTextDateToDate = DateSerial(v(2), v(1), v(0))
End Function


Код: vbnet
1.
2.
?ConvertTextDateToDate("11 апр 2019")
11.04.19 
...
Рейтинг: 0 / 0
04.04.2019, 16:41
    #39796678
a.naumov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в дату
Да, отлично. Спасибо. Правда я сейчас немного переделаю. Просто в импортируемом файле формат немного не такой, как я написал. П\Скорее вот правильный вариант из импортируемого файла :"Thu Mar 28 07:22:00 GMT 2019"

Всеравно премного благодарен. Принцип ясен, поколдую чуть-чуть.
...
Рейтинг: 0 / 0
04.04.2019, 22:21
    #39796838
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в дату
a.naumov
если в полес "краткий формат даты" записать 11 апр 2011 то отобразится 11.04.2011
(а вообще фиолетово как хранить даты в таблице
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразование текста в дату / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]