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

Вниз

Сравнение дат в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
14-63374
ertong
2003-12-28 15:11
2004.01.20
Алгоритм Флойда Стейнберга


1-63186
DDA
2004-01-10 12:00
2004.01.20
ComboBox vs Panel


1-63133
Evgeniy_K
2003-12-28 11:31
2004.01.20
183 I/O Error


3-62991
3APA3A
2003-12-23 17:04
2004.01.20
Сравнение дат в SQL


8-63257
Anton2000
2003-09-17 17:31
2004.01.20
TrackBar в проигрывателе музыки