Страница 1 из 1
Поле типа Дата, SQL
Добавлено: 30 окт 2006, 19:04
Dr_Grizzly
Всем привет! У меня в таблице есть поле Period его тип - Дата/Время (Access). Как в SQL запросе вывести данные по указанной дате???
Код: Выделить всё
Select * from FinansKred
Where period= ???
или
period >= ??? and period<= ???
Со строкой и числам все легко получается, а вот с датой как-то не выходит. Пробовал и в опострофы заключать и так писать, и матерное слово StrToData пробовал, нихрена не выходит

Добавлено: 31 окт 2006, 08:28
LAngel
попробуй указывать формат 'YYYYMMDD', не знаю как в Access, но в MSSQL мне это помогало

т.е.
where perion > '20061031' and perion < '20061101'
будет указывать на сегодня

Добавлено: 31 окт 2006, 10:20
BBB
Насколько я понимаю, можно воспользоваться преобразованием
to_date:
Код: Выделить всё
where perion > to_date ('31.10.2006', 'dd.mm.yyyy')
and perion < to_date ('1.11.2006', 'dd.mm.yyyy')
Или, если надо сформировать дату+время на начало/конец дня:
Код: Выделить всё
where perion > to_date ('31.10.2006, 00.00.00', 'dd.mm.yyyy, HH24.MI.SS')
and perion < to_date ('1.11.2006, 23.59.59', 'dd.mm.yyyy, HH24.MI.SS')
ПРИМ: на Oracle, по крайней мере, это работает
Добавлено: 31 окт 2006, 11:02
Игорь Акопян
а что мешает сделать парметризованный запрос?
... where period =

ate1
и потом задавать Query1.ParamByName('Date1').Value := Date;
Добавлено: 31 окт 2006, 11:06
Absurd
В акцессе даты надо заключать в шарпы #_дата_#. Хотя, binding параметр конечно лучше
Добавлено: 31 окт 2006, 11:14
Лелик_1044
'SELECT DISTINCT A.VALUE, A.GUIDE_ID, A.FARM_ID as TABLE_ID, -1 AS TYPE_ID, A.SOURCE_ID as SOURCE_ID, A.MEASURE_ID as MEASURE_ID, A.PERIOD_ID as PERIOD_ID, A.DATE_FROM, A.TIME_ID, A.DATE_TO, 0 as QRY_TP FROM ATTRIBUTE A WHERE (A.FARM_ID IN (-1,9698)) AND ((A.GUIDE_ID = 13 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-07-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-07-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 13 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-08-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-08-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 14 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-07-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-07-2006','DD-MM-YYYY') ) OR (A.GUIDE_ID = 14 AND A.TIME_ID=1 AND A.PERIOD_ID=2 AND A.SOURCE_ID=1 AND A.MEASURE_ID=1 AND A.DATE_FROM = TO_DATE('01-08-2006','DD-MM-YYYY') AND A.DATE_TO = TO_DATE('31-08-2006','DD-MM-YYYY') )) ORDER BY 4,3,2'#$D#$A
Пример от моей проги, конечно многое тебе не надо но посомтреть как рботают даты тебе думаю вполне хватит

Добавлено: 01 ноя 2006, 20:11
Игорь Акопян
офф.
Absurd, эта штуковина (#) называется октоторп
