Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с полем типа Date&Time [D6, Access]


Charlie ©   (2002-12-22 22:29:00) 

Уважаемые мастера!В базе данных Access имеется поле типа Date&Time.Необходимо отобрать все те записи,в которых значение даты меньше какого-либо значения.
Пишу:select * from main where date


sniknik   (2002-12-23 11:27:00) [1]

вообще как в Access даты реализованы мне не нравится, например 2 запроса
SELECT DateValue("13.12.2002") AS BadDate //#13/12/2002# аналогично
SELECT DateValue("12.13.2002") AS BadDate //#12/13/2002# аналогично
у меня дают одинаковые значения в поле BadDate (проверь если провайдер у тебя тот же то ...), хотя по моему в одном случае в зависимости от формата лутше бы давало ошибку.
но кто меня спрашивал? :-((

выход прост (меня просто неоднозначность смушает) использовать полный формат
SELECT DateValue("Декабрь 13, 2002") AS GoodDate //в руской винде в анг. December
или
SELECT DateSerial(2002, 12, 13) AS GoodDate // г,м,д - однозначно но, внимание! здесь 13 на месте 12-го месяца тоже не ошибка просто следуюший год и месяц 1. (в некоторых случаях удобно)


ЮЮ   (2002-12-23 10:43:00) [2]

Charlie (23.12.02 09:40)
Потому, что #10/12/2002# - 12 октября 2000, а
#11/12/2002#" - 12 ноября 2000,
поэтому 22.10.02 (22 октября) не попадает в первую выборку, но попадает во вторую


Johnmen   (2002-12-23 09:42:00) [3]

На сомом деле так :
select * from main where date<"10.12.2002" (PS dd.mm.yyyy)


Charlie   (2002-12-23 09:40:00) [4]

Спасибо,это работает.Но почему,когда я пишу:
"select * from main where date<#3/12/2002#",то из моего набора,где есть даты 21.10.98,21.10.97,14.12.02,22.10.02 выбирается даты 21.10.98,21.10.97,причем это начинается с
"select * from main where date<#10/12/2002#",а оператор
"select * from main where date<#11/12/2002#" выдает правильный набор:21.10.98,21.10.97,22.10.02.Заранее спасибо




sniknik   (2002-12-22 22:35:00) [5]

select * from main where date<#12/10/2002#


Наверх

Титульная страница Поиск, карта сайта Написать письмо