|
|
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Вот и я пришел к выводу что: 1. Любое событие имеет начало и конец, точная дата это крайний вариант. 2. Для быстрого поиска нужно будет хранить дату события в разных шкалах. Естественно нужен, будет интеллектуальный поиск (терпеть не могу тупые программы) Я опускаю, что у каждого события может быть два, три или более диапазонов, несколько авторов, и множество связанных событий. Пока только говорим о хранении даты. Всем большое спасибо за высказывания. Огромное спасибо Оле, с ее помощью я реально осознал правильность своих мыслей. Заседание продолжается в этом топике. Начало в топике Хранение дат за любой период to akuz! Молчи родной, молчи. Я и так все выдал 8ж) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 22:40:37 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Все молчат, ну как тут не встрять... Пример. Захочется тебе указать, что в такую-то лунную ночь такой-то допотопной эры родился такой-то карапуз, а через 20 годиков у него было уже семеро детей... Тут-то тебе и станет очень плохо, с логарифмической-то шкалой и мелкими годами, а тем более - днями в ней. Ежели такое не понадобится - логарифмируй, ну и т.д., аппроксимируй, короче... :) А если захочешь указывать что-то более точное (даже годы, не говоря уж о днях), то без предлагаемой мною функции (см. предыдущий тред) ИМХО ничего не получится -- тут уже точные числа нужны. ;) Впрочем, я сегодня не опохмелялся -- это оправдание на случай, если все же ошибаюсь... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 18:01:20 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Все молчат, ну как тут не встрять... Сказали молчать, я и молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 18:09:13 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Пока ты не прекратишь темнить, а нафиг тебе сдалась эта машина времени, конкретного ответа на получишь. У меня есть еще идея, но публиковать я ее не буду. Вдруг это не подойдет, а я буду впустую клавиши месить. Если это совсекретно, пиши на мыло. Мой девиз - познание мира невозможно, но нужно и можно изучать конкретные процессы. Сат2. Традиция: агностик-скептицист. ========== Уважаемые посетители! Не пинайте меня за обращение на ТЫ. Просто мы с Мартовским Котом уже довольно давно виртуально знакомы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 21:16:37 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To MarchCat & Everybody Может, у кого формула есть -количество полных лет с даты рождения на определенную дату. Деление на 365 не предлагать!!! Безусловно, можно через функцию, но нужна формула P.S. Ну конечно, дата рождения и определенная дата в таблице, а таблица в БД, а БД на SQL Server.... :-)) Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 12:18:26 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
2 Оля Надеюсь вас не интерисует количество полных лет Лао Цзы в 341 г. д.н.э. Тогда DATEDIFF(yy, birhdate, date). Зачем нужна формула? Ааа понял! Это шутка! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 12:42:37 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To Akuz Никаких шуток! > Тогда DATEDIFF(yy, birhdate, date). Вы это выражение пробовали? У меня не получается, т.е. Если человек родился 21.09.2000, а определенная дата 1.02.2001 , то DATEDIFF(yy, birhdate, date)=1. Если 1.01.2001 родился, а определенная дата 1.02.2001 , то DATEDIFF(yy, birhdate, date)=0. Или у меня с SQL что-то не так? _________________________ А формула есть, мне ее прислали из центра биостатистики из Франции. А я ее куда-то ..... Писать туда еще раз неудобно, вот решила в тему и спросить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 15:37:14 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
А сколько по вашему полных лет месячному ребёнку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 16:16:01 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To Akuz >А сколько по вашему полных лет месячному ребёнку? Мне не нужно по-моему. Мне нужно по-медицинскому. И в обоих вышеприведенных случаях должно быть 0 полных лет. SQL дает в первом случае 1, во втором 0, т.е. он отнимает только года друг от друга. .... ФОРМУЛУ .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 16:47:23 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 17:04:46 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Извиняйте был не прав, стал забывать основы. :) alexeyvg вовремя поправил, добавлю лишь Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 17:51:59 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Спасибо за внимание к проблеме! НО, если даты 27.02.1996 и 26.02.1997, то ошибка у alaxeyvg. если даты 27.02.1995 и 26.02.1996, то ошибка у akuz. Еще несколько часов уборки в столе, комнате, документах и я найду эту ф-лу (может быть). Самое обидное, что я ее и не смотрела, может быть тогда бы зрительно запомнила. Вы пытаетесь решить средствами SQL (и спасибо!), а там точно была примитивная математика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 18:10:40 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To Everybody Может, кто кадры делал: количество полных лет стажа и т.п.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 18:12:57 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, читать надо: если даты 27.02.1995 и 27.02.1996, то неправильно количество полных лет у akuz. P.S.Господа, все равно спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 18:29:01 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 21:25:01 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
так будет быстрее и проще.... Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 23:00:01 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
немного не точно.... для нашего "григорианского" календаря надо делить на 365,2425.... а для "тропического" или тн "(солнечного)" на 365,242199 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 23:28:29 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
и так для справки.... ГОД , промежуток времени, приблизительно равный периоду обращения Земли вокруг Солнца. В астрономии различают: 1) сидерический (звездный) год, соответствующий одному видимому обороту Солнца по небесной сфере относительно неподвижных звезд; составляет 365,2564 средних солнечных суток; 2) тропический год - промежуток времени между двумя последовательными прохождениями центра истинного Солнца через точку (среднюю) весеннего равноденствия (365,2422 сут); 3) аномалистический год - промежуток времени между двумя последовательными прохождениями центра Солнца через перигей его видимой геоцентрической орбиты (365,2596 сут); 4) драконический год, соответствующий времени между двумя последовательными прохождениями Солнца через один и тот же (восходящий или нисходящий) узел орбиты Луны на эклиптике (346,6200 сут); продолжительность всех годов приведена для 1900; 5) календарный год, составляющий 365 сут для простых годов и 366 сут для високосных годов; 6) лунный год продолжительностью 12 лунных синодических месяцев (в среднем 354,367 сут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2002, 23:31:42 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Еще один вариант: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 04:35:20 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To MiCe Спасибо, для общих расчетов все отлично. Но DECLARE @D1 DATETIME, @D2 DATETIME SELECT @D1 = '19950227', @D2 = '19960227' SELECT CAST(DATEDIFF(DD,@D1,@D2)/365.26 AS INT) 0 полных лет _________________________ To Cat2 Спасибо, использует специфические функции SQL. -------------------------------- Просто есть конкретные прикладные задачи 1. Установить количество полных лет на момент диагноза и есть правила, которые диктуются международнами организациями здравоохранения, им теория не нужна, и SQL не нужен. 2. Количество полных лет стажа - правила диктуются законодательной базой, им тоже теория не нужна и SQL не нужен. 3. Возраст на момент совершения преступления и т.п. Собственно говоря, делается пакет по биостатистике и данные туда могут качаться из разных источников, поэтому хотелось бы зашить формулу там, а не на SQL. ---------------------- Уборка на рабочем месте не помогла :-((( Берусь за карандаш и листок бумаги :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 09:38:47 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Ну, в таком случае совет один. 1. См. правила, которые диктуются международнами организациями здравоохранения. 2. См. правила диктуются законодательной базой. Там всё должно быть, хотя я думаю там, скорее всего, приведён алгоритм расчёта, а не формула. Попробуйте в поисковике поискать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 10:16:52 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To akuz Да правило у них всех простое, как грабли Количество полных лет на момент заболевания (выхода на пенсию, свершения преступления и т.п.) Да, собственно, уже получилось :-)). Наверное, подумать было лень. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2002, 13:07:35 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
2 оля SELECT @D1 = '19950227', @D2 = '19960227' день рождения? а сколько должно быть? имхо полный год только после полуночи... то есть на следующий день!... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2002, 13:18:17 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To Mice Верно подмечено, но согласно всем перечисленным задачам, если дата рождения 1995.02.27 то на 0 часов 0 минут 1996.02.27 наступает 1 год. Т.е. в этих задачах принимается, что человек родился в 0 ч 0 мин. А так здорово праздновать день рождения целый день, а потом еще и еще....;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2002, 19:14:00 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32062814&tid=1818826]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 389ms |

| 0 / 0 |
