Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Ошибка с полем дата/время в аксес   Найти похожие ветки 

 
Wolfram   (2004-07-29 09:16) [0]

Запрос типа select field from table where data<="01.01.01" в парадоксе работал, а в аксесе "Несоответствие типов данных в выражении условия отбора".
Может, дату надо как-то по другому оформлять?


 
Ega23 ©   (2004-07-29 09:20) [1]

попробуй  where data<="01.01.2001"


 
Johnmen ©   (2004-07-29 09:25) [2]

select field from table where data<=:parametr
Будет работать, независимо от типа СУБД.


 
ЮЮ ©   (2004-07-29 09:28) [3]

В Accesse симольный формат даты в запросе такой:
"#<непосредственно дата>#"

Только 01.02.03 имеет 6 различных и правильных интерпретаций. Успехов! :-)


 
Wolfram   (2004-07-29 09:30) [4]

там так и получается select field from table where data<=""+date+"" , var date : tdate, вроде все правильно, но не работает, блин. в бд у поля стоит тип "Краткий формат даты", маски ввода, значения по умолчанию нет, поле необязатеьлное, неиндексированное.


 
Wolfram   (2004-07-29 09:34) [5]

[3]

>В Accesse симольный формат даты в запросе такой:
>"#<непосредственно дата>#"

select field from table where data<=#"+date+"# - ошибка в запросе бла-бла-бла


 
DarkMan   (2004-07-29 09:39) [6]

select field from table where data<=#"+date+"#
где date формат "mm/dd/yyyy"


 
ЮЮ ©   (2004-07-29 09:39) [7]

"#01.02.03#"
только что это - 1 фебраля 2003 или 2 марта 2001 будет знать только БоГ и ассess.

Поэтому см.[2]
Улыбка в [3] была саркастической


 
Wolfram   (2004-07-29 09:48) [8]

> где date формат "mm/dd/yyyy"

т.е. стандартный tdate не подходит? ведь он дает dd.mm.yyyy.
а если у меня в поле все типа dd.mm.yyyy - что, вообще не получится с этими полями работать?


 
Anatoly Podgoretsky ©   (2004-07-29 09:50) [9]

Wolfram   (29.07.04 09:48) [8]
Стандартный tdate ничего не знает про dd.mm.yyyy.


 
Wolfram   (2004-07-29 09:52) [10]

>Стандартный tdate ничего не знает про dd.mm.yyyy.

Переформулирую вопрос: как из dd.mm.yyyy получить mm/dd/yyyy?

Подскажите, плз.


 
Johnmen ©   (2004-07-29 09:55) [11]

Ты тормозишь или разводишь ?


 
Соловьев ©   (2004-07-29 09:55) [12]


> Переформулирую вопрос: как из dd.mm.yyyy получить
> mm/dd/yyyy?

на форуме это каждый 5-й вопрос. У Вас поиск не работает? илиссылки 2,3,4...?


 
Wolfram   (2004-07-29 09:57) [13]

>Johnmen

Похоже и то, и другое... Положение обязывает... :(


 
starcomputer   (2004-07-29 10:06) [14]

> Запрос типа select field from table where data<="01.01.01" в парадоксе работал, а в аксесе "Несоответствие типов данных в выражении условия отбора".
Может, дату надо как-то по другому оформлять? <

select field from table where data <= DateValue("01.01.01");

И все будет работать!
А вообще почитай хэлп от Access там довольно много любопытных встроенных функций.


 
DarkMan   (2004-07-29 10:19) [15]

FormatDateTime(""#"mm"/"dd"/"yyyy"#"",xxxxx)


 
Wolfram   (2004-07-29 10:27) [16]

Спасибо всем сердешное. Уже все поправил.


 
Anatoly Podgoretsky ©   (2004-07-29 11:42) [17]

Wolfram   (29.07.04 09:52) [10]
С помощью функций копировать части в нужно порядке и поставлять нужные разделители. А TDate ничего про это не знает, но зато его можно преобразовать в строку нужного формата


 
Umak ©   (2004-07-30 07:17) [18]

забивай дату в числовом формате - все работает отлично
и по идее даже быстрее должно.
а лучше используй параметры


 
Wayfarer   (2004-07-31 07:02) [19]

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;


 
faost ©   (2004-07-31 13:12) [20]


> Wolfram   (29.07.04 09:16)  
> Запрос типа select field from table where data<="01.01.01"
> в парадоксе работал, а в аксесе "Несоответствие типов данных
> в выражении условия отбора".
> Может, дату надо как-то по другому оформлять?


Все очень просто. Сначала тебе нужно перевести формат даты из "дд.ММ.уууу" (день.месяца.год) в "ММ/дд/уууу" (месяц/день/год) и в записи запроса дату вставлять не в кавычки а в "#". Т. е., втой запрос будет выглядеть так:
select field from table where data<=#01/01/01#



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

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.056 c
3-1091137474
Максим
2004-07-30 01:44
2004.08.22
Access - как измененить значение поля?


4-1089703480
alik-os
2004-07-13 11:24
2004.08.22
Remote Administator


14-1091630890
ram
2004-08-04 18:48
2004.08.22
как в IE поменять адрес домашней страницы


14-1091624567
by
2004-08-04 17:02
2004.08.22
Методики разработки ПО


14-1091723482
Никита
2004-08-05 20:31
2004.08.22
Меню как в Офисе ХР