Полный формат даты

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
KibkaloIg
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.06.2005 (Ср) 0:24

Полный формат даты

Сообщение KibkaloIg » 26.09.2005 (Пн) 22:43

У меня дата хранится в полном своем формате (со временем т.е.)
в запросе ставлю условие тоже по полному формату и получаю "хрен"

У кого ещё такая беда?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Re: Полный формат даты

Сообщение lord0n » 27.09.2005 (Вт) 8:36

KibkaloIg писал(а):У меня дата хранится в полном своем формате (со временем т.е.)
в запросе ставлю условие тоже по полному формату и получаю "хрен"

У кого ещё такая беда?


телепатов я вчера уволил
запрос в студию :)
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 27.09.2005 (Вт) 9:07

Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 20:31, всего редактировалось 1 раз.

KibkaloIg
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.06.2005 (Ср) 0:24

Сообщение KibkaloIg » 27.09.2005 (Вт) 9:15

Вот собственно и запрос

SELECT Max(Цены.Дата) AS МДата, Цены.Товар, Цены.ТипЦены
FROM Цены
WHERE (((Цены.Дата)<=GetWorkDate()))
GROUP BY Цены.Товар, Цены.ТипЦены
HAVING (((Цены.ТипЦены)=[Forms]![Накладная]![ТипЦены]));


Я думаю что все дело в Американских PM- ах и AM -ах

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 27.09.2005 (Вт) 9:53

KibkaloIg писал(а):Вот собственно и запрос

SELECT Max(Цены.Дата) AS МДата, Цены.Товар, Цены.ТипЦены
FROM Цены
WHERE (((Цены.Дата)<=GetWorkDate()))
GROUP BY Цены.Товар, Цены.ТипЦены
HAVING (((Цены.ТипЦены)=[Forms]![Накладная]![ТипЦены]));


Я думаю что все дело в Американских PM- ах и AM -ах


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

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 27.09.2005 (Вт) 10:23

Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 20:53, всего редактировалось 1 раз.

KibkaloIg
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.06.2005 (Ср) 0:24

Сообщение KibkaloIg » 29.09.2005 (Чт) 11:43

Функция GetWorkDate() возвращает по типу Date (Дату и время в каком формате хрен его знает, наверное всетаки дддд,вввв)
Вот если вместо функции напрямую пишу #8/10/2004 2:50:39 AM#
выборка идет отлично.
Если с помощью функции - хренушки
(из эксперемента обнаружил, что все зависит от формата даты (америкнский) и от формата времени (PM или AM)

Как это все исправить не соображу :shock:

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 29.09.2005 (Чт) 12:28

Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 20:54, всего редактировалось 1 раз.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 29.09.2005 (Чт) 13:27

можно так
Код: Выделить всё

a = Format(Now, "mm\/dd\/yyyy h:m:s AMPM")
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 29.09.2005 (Чт) 13:37

[quote][/quote]
Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 20:55, всего редактировалось 1 раз.

KibkaloIg
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.06.2005 (Ср) 0:24

Сообщение KibkaloIg » 30.09.2005 (Пт) 22:13

Я и имел ввиду, что описание функции GetWorkDate() as Date.

a = Format(Now, "mm\/dd\/yyyy h:m:s AMPM")
Это тоже опробовано, Access97 не хочет, стервец, приписывать в конец AM или PM (глюк какой-то наверное) PM или AM было добавлено с помощью не сложной функции, впрчем этот вариант тоже не работал.

Помогла вот только такая штука
SELECT Дата FROM Таблица WHERE CSng(Дата) <= CSng(GetWorkDate())

А как же все-же без извратов её заставить работать?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.10.2005 (Пн) 8:38

Если функция возвращает дату и поле в таблице типа даты то все будет работать правильно.

Помогла вот только такая штука
SELECT Дата FROM Таблица WHERE CSng(Дата) <= CSng(GetWorkDate())


Поубирай CSng с разных сторон по очереди. Когда перестанет работать - там у тебя не тип даты...

А вообще функцию в условие запроса запихивать не есть хорошо - лучше уж передавай параметром или строй запрос динамически...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

KibkaloIg
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 22.06.2005 (Ср) 0:24

Сообщение KibkaloIg » 03.10.2005 (Пн) 9:08

Не понял, на счет поубирай с обоих сторон по очереди?
И, что получится с одной стороны Single а с другой Date
И это будет работать?Я идиот! Убейте меня, кто-нибудь! :shock: :?: :?: :?:

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.10.2005 (Пн) 9:11

KibkaloIg писал(а):Не понял, на счет поубирай с обоих сторон по очереди?
И, что получится с одной стороны Single а с другой Date
И это будет работать?Я идиот! Убейте меня, кто-нибудь! :shock: :?: :?: :?:


Вообще-то да - будет. Ибо (скажу по секрету) дата это Double ;)

А вообще у меня большое подозрение что твоя функция возвращает строку, а не дату. Где ее код?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 03.10.2005 (Пн) 11:15

Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 20:56, всего редактировалось 1 раз.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.10.2005 (Пн) 11:21

Al Khamid писал(а):Андрей, а почему так? Вроде если функция без аргумента или аргумент - постоянное значение, не изменяющееся от записи к записи, то ее значение рассчитывается один раз и таким образом не тормозит работу запроса по сравнению с использованием параметров.
Не буду с тобой спорить, просто мне интересно почему так.


Я экспериментов не ставил, но думаю что она вызывается не один раз. Ибо и функция без аргумента может возвращать каждый раз разное значение, например: Rnd(), Timer()...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 03.10.2005 (Пн) 15:59

<не голосуй за Пу>
Последний раз редактировалось Al Khamid 25.11.2007 (Вс) 21:59, всего редактировалось 1 раз.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.10.2005 (Пн) 16:08

Al Khamid писал(а):Rnd() и Timer() тоже вызываются один раз и значение попадает во все записи, возвращенные запросом. Логика проста: нет аргумента - нет причин меняться результату :). Но это верно для Access, в других СУБД не проверял.


Да, проверил - в Access действительно так - функция во Where вызывается один раз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList  
cron