Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: -0.981 c
7-63427
Monak
2003-10-30 21:22
2004.01.20
Как отлавить нажатие F1??


1-63057
Кен
2003-12-31 01:06
2004.01.20
Как преобразовать имя из C: МОИ ДОКУМЕНТЫ в C: Мои документы ?


14-63357
sync
2003-12-29 22:05
2004.01.20
Помогите разобраться с протаколами


14-63376
Yegor
2003-12-30 12:34
2004.01.20
Пишу свой Browser....


1-63228
Sergious
2004-01-09 15:39
2004.01.20
А в Delphi 7 есть закладка FastNet?




   Наверх