Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизСравнение дат в SQL Найти похожие ветки
← →
3APA3A (2003-12-23 17:04) [0]У меня таблица Paradox такого примерно формата
day_ int, month_ int, year_ int,(дальше другие данные)...
И пользователь выбирает период времени, который в программе представляется как day1,month1,year1 и day2,month2,year2 - все integer, day1,month1,year1 - это начало периода, day2,month2,year2 - соответственно конец этого периода. Как SQL-запросом вебрать только те записи, которые лежат в этом периоде?
я раньше писал просто (day_>=day1 and month_>=month1 and year_>=year1 and day_<=day2 and month_<=month2 and year_<=year2), пока не заметил, что это не правильно... Помогите пожалуйста...
← →
Mike Kouzmine (2003-12-23 17:08) [1]А что неправильно? Хранить дату так или запрос?
← →
Johnmen (2003-12-23 17:10) [2](day+month*100+year*10000>=day1+month1*100+year1*10000) and
(day+month*100+year*10000<=day2+month2*100+year2*10000)
← →
Sandman25 (2003-12-23 17:12) [3]3APA3A © (23.12.03 17:04)
Храните дату 2 раза: один раз в виде DATE (для фильтров) и один раз в виде трех INT (для группировки).
← →
3APA3A (2003-12-23 17:13) [4]to Mike Kouzmine да нет... запрос неправильный..Если немного поразмыслишь - придешь к такому же выводу... =))
to Johnmen - а почему умножаешь именно на 100 и 10000 (не догоню что-то никак =))
← →
Mike Kouzmine (2003-12-23 17:17) [5]3APA3A © (23.12.03 17:13) [4] 1999 05 11
← →
Johnmen (2003-12-23 17:19) [6]>3APA3A © (23.12.03 17:13)
Чтобы были примерно такие числа для сравнения
19840312<=19641123<=20031223
:)
← →
3APA3A (2003-12-23 17:19) [7]to Johmmen - а... все.. понял почему на 100 и на 10000... =)
Как говорится - "и почему я сам не догадался... =)))"
Спасибо...
← →
3APA3A (2003-12-23 17:20) [8]Ха.. а вот и объяснение твое... Все, всем спасибо, тема закрыта...
← →
Donna (2003-12-23 17:21) [9]>3APA3A © (23.12.03 17:13) [4]
Круглые числа :) Можно было и на 50 и 500 умножить или на 32 и 10 :)
← →
Johnmen (2003-12-23 17:24) [10]>Donna (23.12.03 17:21)
на 32 и 10 нельзя :)
← →
3APA3A (2003-12-23 17:24) [11]А что такое круглые числа? И потом - мне кажется, что на 50 и 500 и на 32 и 10 - не получится...
← →
Sandman25 (2003-12-23 17:26) [12][9] Donna (23.12.03 17:21)
На A1=32 и A2=10 нельзя. Надо чтобы:
1) 31 < A1
2) 12 * A1 + 31 < A2
← →
Johnmen (2003-12-23 17:27) [13]>Sandman25 © (23.12.03 17:26)
A2 достаточно > 366
:)
← →
Sandman25 (2003-12-23 17:30) [14][13] Johnmen © (23.12.03 17:27)
Зависит от A1.
Надо, чтоб
12*A1+31 < A2+A1+1
Если A1=100, то имеем
1231<A2+101
Откуда A2>1130 :)
← →
Johnmen (2003-12-23 17:36) [15]>Sandman25 © (23.12.03 17:30)
Да, верно. Я не прав, поторопился...
← →
Sandman25 (2003-12-23 18:02) [16][15] Johnmen © (23.12.03 17:36)
Это нормально. Сам такой же :)
← →
Donna (2003-12-23 18:06) [17]Я так посчитала, что и так год >=2000 :)
← →
Sandman25 (2003-12-23 18:10) [18][17] Donna (23.12.03 18:06)
Это неважно. Разница между годами все равно только 1 год :)
31 декабря 2002 года -> 31+32*12+2002*10=20435
1 января 2003 года -> 1+32*1+2003*10=20063
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c