powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как преобразовать дату вида 110901 в 01.09.2011
21 сообщений из 21, страница 1 из 1
как преобразовать дату вида 110901 в 01.09.2011
    #37457881
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сабж

Я сделал это через left, right, mid. Потом соединил и получил в нужном виде. Может есть более простые решения?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37457889
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда проще-то?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37457909
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну например format ... но насколько я знаю эта функция не знает такого формата даты.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37457917
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НУ если очень хочется:
Код: plaintext
1.
2.
3.
Dim s As Long
s = Val("110901")
Debug.Print Format$(DateSerial(s \  10000  +  2000 , s \  100  Mod  100 , s Mod  100 ), "dd\.mm\.yyyy")
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37458008
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
s = "110923" 
Debug.print CDate("20" & Left$(s,  2 ) & "-" & Mid$(s,  3 ,  2 ) & "-" & right$(s,  2 ))
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37458021
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF
Код: plaintext
1.
2.
s = "110923" 
Debug.print CDate("20" & Left$(s,  2 ) & "-" & Mid$(s,  3 ,  2 ) & "-" & right$(s,  2 ))
burtomЯ сделал это через left, right, mid. Потом соединил и получил в нужном виде. Может есть более простые решения?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37458245
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо. Не могли бы еще пояснить как она работает. Смотря на код не понимаю.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37458321
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а собственный вариант тогда чем отличается, если собственный понимаешь, а этот - нет?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460142
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Теперь столкнулся с очередной проблемой. Дата у меня собирается из частей при помощи mid, left , right. Добавил переменную. Объявил ее как дата. Переменную выставлю в запрос. Не работает. Не воСпринимает мою дату. Сейчас у нее вот формат дд.Мм.гггг . если в запрос подставить дату формата м/дд/гггг тогда все нормально. Почему так происходит?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460216
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) имеет место непонимание типов данных. Если переменная объявлена как дата то она не имеет какого-то формата. Это просто число в памяти. При преобразовании ее в строку (когда, например, ты формируешь строку запроса), ее нужно отформатировать с помощью функции format как нужно (см. мой пример). Если ты не будешь специально форматировать ее, то на компах, где в панели управления установлены другие региональные настройки, твоя программа работать не будет.
1а) Если ты собираешь с помощью mid/left собираешь дату в текст, потом преобразовываешь ее в дату - это тоже может некорректно работать на разных компах для дат типа 01/02/2000 - не будет точно ясно - это 1 февраля или 2 января. Корректным будет мой пример (без format$)
2) СУБД как правило просят дату в американском формате, либо в ANSI, так что удивляться тут нечему
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460268
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок. Теперь более понятно. Сделал по твоему примеру. Как теперь полученную дату сравнить с датами в бд? Типа скорость такая дата, данные не другим. Если нет, другим. Пытался сделать это через docmd.runsql, но в таком случае получить результат запроса не получится.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460368
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с помощью сравнения.
запрос угадать нужно?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460423
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Select date from dep where date равно переменной

Если такой даты нет продолжить процедуру.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460427
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и в чем проблема?
код в студию, что не получается
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460617
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал через openrecordset , но при выполнении кода вылетает ошибка, что ядро бд не может найти входную таблицу. Как создать подключение к бд?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460628
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для работы с данными использую dao
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460646
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код секретный что ли?
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460700
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Нет )) я в нете с планшетника. Код на компе. Вот. Смог перенести.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460759
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все. Сам сделал. Во первых название таблицы указал не в кавычках. Во вторых findfirst поддерживается только в dbopendynaset.
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37460951
burtom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за помощь. Это только начало. Вопросов будет еще оч. Много ))
...
Рейтинг: 0 / 0
как преобразовать дату вида 110901 в 01.09.2011
    #37461147
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И на большинство из них ответы уже есть. В MSDN . Здесь . Или в яндексе.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как преобразовать дату вида 110901 в 01.09.2011
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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