Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Вниз

SQL запрос, бд-MS Access, по дате   Найти похожие ветки 

 
vantage10   (2003-05-25 18:44) [0]

Есть след. проблема:
Используется ADOQuery, БД-Access2000, Delphi7, Win2000
Все запросы работают, но запрос по дате и времени пишет несоотвествие типов данных.
Пробовал дату писать #04/03/2003# в таком формате ошибка не вылазит но и записей не выводит хотя они существуют в базе.


 
sniknik   (2003-05-25 20:49) [1]

два варианта,
первый вместо #04/03/2003# нужно #03/04/2003#
второй в базе значение со временем и нужно по другому запрос составить или с > < (больше 4-го и меньше 5-го) или сравнивать так WHERE Int(DateField)=#04/03/2003#

(возможно оба варианта пересекаются)


 
HelDet   (2003-05-26 07:45) [2]

Есть стандартные функции Year, Date, Month.

Попробуй:
SELECT * FROM Table WHERE Year(Table.DataField)=2003 AND Date(Table.DataField)=03 AND Month(Table.DataField)=04
Примерно так. Если я ошибся в написании стандартных функций, то посмори их в справке по Access. Писал по памяти.

В SQL американский формат даты mm.dd.yyyy


 
vantage10   (2003-05-27 18:23) [3]

>shiknik
Огромное спасибо, WHERE Int(DateField)=#04/03/2003# - в таком виде заработало!!!

>HelDet
Что-то не заработало, а Access не стоит и под рукой нет, при возможности посмотрю.


 
sniknik   (2003-05-27 19:09) [4]

vantage10 (27.05.03 18:23)
>>HelDet
> Что-то не заработало, а Access не стоит и под рукой нет, при возможности посмотрю.
тогда замени Year, (Date)-> на -> Day , Month.

если с отсечением времени Int(DateField) заработало то дело было в нем (время не учитывал, а не перепутал день/месяц)
а если к тому же это поле с индексом (DateField) то советую переделать запрос на использование > < или between DateField #04/03/2003# and #04/04/2003#. потому как в вычисляемых условиях индексы не используются (будет отрабатывать на порядок быстрей).



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
3-60090
Rel_
2003-05-28 14:39
2003.06.19
TQuery


4-60452
velsi
2003-04-17 12:38
2003.06.19
TaskbarCreated


1-60240
agentru
2003-06-05 17:51
2003.06.19
Запись данных в память


3-60085
denary
2003-05-29 01:38
2003.06.19
Как сделать частичную замену в строке?


14-60327
Карлсон
2003-06-01 16:21
2003.06.19
чистящие средства.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский