powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / У кого это глюки - у меня от весны или у моего компа? (о формате дат)
17 сообщений из 17, страница 1 из 1
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470293
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Просьба знатокам прокомментировать сл. ситуацию:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub test()
Dim TmpDate As Date

TmpDate = Format( "31 . 03 . 2004 ",  "MM/DD/YYYY" )
Debug.Print TmpDate
End Sub
 -----------
 
результат:  31 . 03 . 2004 


теперь наберем в дебаг-виндоу:

Код: plaintext
1.
2.
3.
4.
?Format( "31 . 03 . 2004 ",  "MM/DD/YYYY" )
 ---------
 
 03 . 31 . 2004 


Т.е. в первом случае функция возвращает дату непреобразованной к амер. стандарту, во втором, ту же самую дату - преобразовывает в mm/dd/yyyy.

WinXP, АксессХР, MDAC 2.7

За ссылки (не на.. очень далеко) - буду признателен.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470305
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TmpDate - это тип данных:ДАТА. Дата тебе и возращается, согласно региональным настройкам Виндоуса.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470309
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Медведь, это у тебя глюки
Dim TmpDate As Date

Сделай
Dim TmpDate As String
или
Debug.Print Format(TmpDate, "MM/DD/YYYY")
и не парься.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470311
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
апаздал
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470484
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Между прочим, когда пишешь
Format("31.03.2004", "MM/DD/YYYY")
то "31.03.2004" тоже будет понято по-разному в зависимости от настроек.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470501
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели как 2004-е число 31-го месяца 3-го года???
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32470503
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я рассматривал общий случай. :^)
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32471383
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за наводящие ответы :)

Если не затруднит - каковы стандарты даты в SQL в Access?
Дата должна быть представлена обязательно в амер. стандарте в случае динамического формирования SQL-строки
(понятно, что в построителе запросов такой проблемы нет)?
Столкнулся со сл. ситуацией (выбираем некоторые данные за нужный месяц):

Код: plaintext
1.
2.
3.
....
WHERE
T.PeriodEndDate Between # 01 / 03 / 2004 # And # 31 / 03 / 2004 #


Как думаете, за какой период возвращаюстя данные в рекордсет?
С 3-го января по 31-е марта.
Т.е. первая дата интерпретируется как амер. стандарт, вторая, ясный пень, как русский.
И где, спрашивается, региональные настройки даты?

Приходится, пока, делать так:
....
WHERE
T.PeriodEndDate Between #03/01/2004# And #31/03/2004#

Тогда данные получишь за нужный месяц.
Разве это правильно?
А если я буду поставлять дату в SQL в амер. формате - ведь там тоже могут
возникнуть разночтения: 31/03/2004 - трудно интрепретировать как 3 число
31-го месяца. А, например, 10/03/2004 - и так и этак.
Как она будет каждый раз пониматься при выполнении SQL - для меня
вопрос пока темный.
Посоветуйте чего-нибудь
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32471392
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы еще спите, а в Сибири уже жизнь вовсю кипит...
Сам себе посоветую.
В динамический SQL надо подставлять дату в американском формате.

Еще раз спасибо за понимание мого непонимания.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32471405
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торопливый, однако...
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32471409
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander GТоропливый, однако...
Дк. Проспи всю зиму...
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472721
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В командах SQL в Аксессе даты идут по американскому формату. Поэтому 01/03/2004 - это 3 января. Однако если то, что написано, не укладывается в американский формат, например 31/03/2004, то Аксесс начинает гадать и пытаться понять это как-нибудь по-другому. Полагаться на это не нужно, нужно писать по американскому формату.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472735
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще лучше явно преобразовывать их в ентот самый стандарт. Дабы спалось спокойнее
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472878
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТемныйА еще лучше явно преобразовывать их в ентот самый стандарт. Дабы спалось спокойнее :))

Я так теперь и делаю - в SQL-строку подставляется строка, сформатированная под амер. дату.
Код: plaintext
1.
2.
3.
4.
5.
6.
...
DateEnd$ = Format(TmpDate,  "MM/DD/YYYY" )
DateEnd$ =  "#"  & Replace(DateEnd$,  "." ,  "/" ) &  "#" 
 
SQL = Replace(SQL,  "#1 #", DateBegin$)
SQL = Replace(SQL,  "#2 #", DateEnd$)
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472882
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По этому поводу лучше было сразу прочитать FAQ
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472888
Большой Жирный Медведь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alexander G
Икскьюз ми, конечно. В первом топике я об этом и просил.
На самом деле меня дополнительно интересовало - как люди относятся к тому, что Access "изменяет" сам себе - интерпретирует в SQL одну дату так, другую этак.
Если ты (MsJet) в амерском формате обрабатываешь дату - так в нем и обрабатывай, нефиг умничать и втихомолку подставлять другую! Лучше сругайся на несоответствующий формат даты - это будет вернее. Все равно, что мерить что-л. целыми метрами и встретив цифру 0,2 заменить ее целыми попугаями.
...
Рейтинг: 0 / 0
У кого это глюки - у меня от весны или у моего компа? (о формате дат)
    #32472893
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я плохо отношусь. Но не можешь изменить обстоятельства - приходится привыкать.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / У кого это глюки - у меня от весны или у моего компа? (о формате дат)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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