|
|
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, мимо проходил и встрял. А вот так не вкуснее будет: floor(datediff(mm,@d1,@d2)/12) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 16:02:44 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To MiCe Отвечает бывшая Оля, наконец я зарегистрировалась на форуме как Лëля >так всегда верно? Всегда - не бывает. Для моей задачи неверно. Родился 27.02.1996 Заболел 26.02.1997 Нет ему года на момент заболевания, а Ваш расчет дает год. Оцените громоздкость и надежность этого выражения Оно на самом деле м.б. не привязано к ф-циям SQL сервера, хотя я его написала в ф-циях SQL. Т.е. можно хранить отдельно год, месяц, день как целые числа и не привязываться к типам данных, связанных с датой-временем. Код: plaintext 1. __________________ MiCe, спасибо за участие! Поздравляю еще раз с рождением сына! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 16:24:10 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
что делать если человек родился 29 февраля?(по закону) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 16:39:58 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
В след. году 28.02 ему нет года, на 1.03 - есть По-моему, так .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 16:45:23 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
пасибки.... главное не забыть... а решение действительно унивирсальное.... может в FAQ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 16:48:03 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 17:46:35 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Ого, сколько тут понаписали, и все без меня! :) Леля, формула, может, и хороша (не проверял), но из академических соображений делить следует на число, чуть большее, чем 365, а не ровно на 365. А вообще это наверняка не всегда корректная формула, когда-то давно, когда я делал программу "Биоритмы", я в этой программе учитывал и високосные годы, и сотые годы... Это была одна формула с выражениями по модулю. Если в инете поищете, то наверняка найдете. Кредо: добавь ложку дегтя вместо воды! ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 17:54:35 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
2 TBB а ты проверь.... ;)) здесь же не вычисляют разницу в днях... вычисляется сколько полных лет между датами... на счет деления.... у нее floor... этого достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:01:18 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
>Леля, формула, может, и хороша (не проверял), но из академических соображений делить следует на число, чуть большее, чем 365, а не ровно на 365. To TBB Могу сказать, что делить можно и на 361, 362, etc. Дни начинают играть, когда месяцы одинаковые, задача третьей части формулы - попасть по модулю в промежуток [0;1/12[. Масимальная разница между днями 30 единиц, соответственно 361- будет достаточно. Я понятно объяснила? :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:34:35 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
а ты проверь.... ;)) Чего именно? :) здесь же не вычисляют разницу в днях... Здесь предложили в FAQ поместить, а в формуле дни вполне себе вычисляются. на счет деления.... у нее floor... этого достаточно Делить можно и на 1000, а не на 365, хуже вычисляться не будет, но затуманит понимание. Я же сказал "из академических соображений"... :) Дни начинают играть, когда месяцы одинаковые, задача третьей части формулы - попасть по модулю в промежуток [0;1/12 Вот это - точно! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:42:08 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
To Alexes Спасибо, высший пилотаж! И очень "академично" - позиционное разнесение и реализация сравнения. Мне нравится! ----------- Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 10:48:39 |
|
||
|
2 Хранение дат за любой период 2
|
|||
|---|---|---|---|
|
#18+
Есть решение без делений и умножений (а также логарифмов и интегралов): 1. T-SQL Код: plaintext 1. 2. 3. 4. 2. Практически любой язык (с математической функцией MAX()) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 11:33:17 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32067309&tid=1818826]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 192ms |
| total: | 351ms |

| 0 / 0 |
