![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с полем типа 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#