Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
4-63440
tower
2003-11-14 10:23
2004.01.20
Отследить команду


1-63136
афвуд
2004-01-07 16:31
2004.01.20
Полосатый ListBox


1-63110
Гаррик
2004-01-07 16:35
2004.01.20
ListView


1-63238
Dimmu Borgir
2004-01-09 11:36
2004.01.20
Rgn


8-63258
Psibug
2003-09-15 19:24
2004.01.20
Antialiasing в Opengl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский