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

Я сделал это через left, right, mid. Потом соединил и получил в нужном виде. Может есть более простые решения?
...
Рейтинг: 0 / 0
27.09.2011, 19:35
    #37457889
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
Куда проще-то?
...
Рейтинг: 0 / 0
27.09.2011, 19:47
    #37457909
burtom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
Ну например format ... но насколько я знаю эта функция не знает такого формата даты.
...
Рейтинг: 0 / 0
27.09.2011, 19:53
    #37457917
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
НУ если очень хочется:
Код: 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
27.09.2011, 21:47
    #37458008
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
Код: plaintext
1.
2.
s = "110923" 
Debug.print CDate("20" & Left$(s,  2 ) & "-" & Mid$(s,  3 ,  2 ) & "-" & right$(s,  2 ))
...
Рейтинг: 0 / 0
27.09.2011, 22:02
    #37458021
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
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
28.09.2011, 04:27
    #37458245
burtom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
спасибо. Не могли бы еще пояснить как она работает. Смотря на код не понимаю.
...
Рейтинг: 0 / 0
28.09.2011, 08:48
    #37458321
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
Интересно, а собственный вариант тогда чем отличается, если собственный понимаешь, а этот - нет?
...
Рейтинг: 0 / 0
29.09.2011, 03:51
    #37460142
burtom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как преобразовать дату вида 110901 в 01.09.2011
Shocker.Pro,

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

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

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


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