![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка с полем дата/время в аксес [D5]
Wolfram © (2004-07-29 09:16:00)Запрос типа
select field from table where data<="01.01.01"в парадоксе работал, а в аксесе 'Несоответствие типов данных в выражении условия отбора'.
Может, дату надо как-то по другому оформлять?
faost (2004-07-31 13:12:00) [1]
> Wolfram (29.07.04 09:16)
> Запрос типа select field from table where data<="01.01.01"
> в парадоксе работал, а в аксесе 'Несоответствие типов данных
> в выражении условия отбора'.
> Может, дату надо как-то по другому оформлять?
Все очень просто. Сначала тебе нужно перевести формат даты из 'дд.ММ.уууу' (день.месяца.год) в 'ММ/дд/уууу' (месяц/день/год) и в записи запроса дату вставлять не в кавычки а в '#'. Т. е., втой запрос будет выглядеть так:
select field from table where data<=#01/01/01#
Wayfarer (2004-07-31 07:02:00) [2]function strDateAccessFormat(Dt:String):String;
begin
Result:='#'+strPadChL(strTokenAt(Dt,'.',0),'0',2)+'/'+
strPadChL(strTokenAt(Dt,'.',1),'0',2)+'/'+strTokenAt(Dt,'.',2)+'#';
end;
function strDateAccessFormat(Dt:TDate):String;
var D,M,Y:Word;
begin
DecodeDate(Dt,Y,M,D);
Result:='#'+strPadChL(IntToStr(M),'0',2)+'/'+
strPadChL(IntToStr(D),'0',2)+'/'+IntToStr(Y)+'#';
end;
Umak (2004-07-30 07:17:00) [3]забивай дату в числовом формате - все работает отлично
и по идее даже быстрее должно.
а лучше используй параметры
Anatoly Podgoretsky (2004-07-29 11:42:00) [4]Wolfram (29.07.04 09:52) [10]
С помощью функций копировать части в нужно порядке и поставлять нужные разделители. А TDate ничего про это не знает, но зато его можно преобразовать в строку нужного формата
Wolfram (2004-07-29 10:27:00) [5]Спасибо всем сердешное. Уже все поправил.
DarkMan (2004-07-29 10:19:00) [6]FormatDateTime('"#"mm"/"dd"/"yyyy"#"',xxxxx)
starcomputer (2004-07-29 10:06:00) [7]> Запрос типа select field from table where data<="01.01.01" в парадоксе работал, а в аксесе 'Несоответствие типов данных в выражении условия отбора'.
Может, дату надо как-то по другому оформлять? <
select field from table where data <= DateValue('01.01.01');
И все будет работать!
А вообще почитай хэлп от Access там довольно много любопытных встроенных функций.
Wolfram (2004-07-29 09:57:00) [8]>Johnmen
Похоже и то, и другое... Положение обязывает... :(
Johnmen (2004-07-29 09:55:00) [9]Ты тормозишь или разводишь ?
Соловьев (2004-07-29 09:55:00) [10]
> Переформулирую вопрос: как из dd.mm.yyyy получить
> mm/dd/yyyy?
на форуме это каждый 5-й вопрос. У Вас поиск не работает? илиссылки 2,3,4...?
Wolfram (2004-07-29 09:52:00) [11]>Стандартный tdate ничего не знает про dd.mm.yyyy.
Переформулирую вопрос: как из dd.mm.yyyy получить mm/dd/yyyy?
Подскажите, плз.
Anatoly Podgoretsky (2004-07-29 09:50:00) [12]Wolfram (29.07.04 09:48) [8]
Стандартный tdate ничего не знает про dd.mm.yyyy.
Wolfram (2004-07-29 09:48:00) [13]> где date формат "mm/dd/yyyy"
т.е. стандартный tdate не подходит? ведь он дает dd.mm.yyyy.
а если у меня в поле все типа dd.mm.yyyy - что, вообще не получится с этими полями работать?
ЮЮ (2004-07-29 09:39:00) [14]'#01.02.03#'
только что это - 1 фебраля 2003 или 2 марта 2001 будет знать только БоГ и ассess.
Поэтому см.[2]
Улыбка в [3] была саркастической
DarkMan (2004-07-29 09:39:00) [15]select field from table where data<=#'+date+'#
где date формат "mm/dd/yyyy"
Wolfram (2004-07-29 09:34:00) [16][3]
>В Accesse симольный формат даты в запросе такой:
>'#<непосредственно дата>#'
select field from table where data<=#'+date+'#- ошибка в запросе бла-бла-бла
Wolfram (2004-07-29 09:30:00) [17]там так и получается
select field from table where data<="'+date+'", var date : tdate, вроде все правильно, но не работает, блин. в бд у поля стоит тип 'Краткий формат даты', маски ввода, значения по умолчанию нет, поле необязатеьлное, неиндексированное.
ЮЮ (2004-07-29 09:28:00) [18]В Accesse симольный формат даты в запросе такой:
'#<непосредственно дата>#'
Только 01.02.03 имеет 6 различных и правильных интерпретаций. Успехов! :-)
Johnmen (2004-07-29 09:25:00) [19]
select field from table where data<=:parametr
Будет работать, независимо от типа СУБД.
Ega23 (2004-07-29 09:20:00) [20]попробуй
where data<="01.01.2001"