|
|
|
| В таблице есть поле с датами.
-------------------------------------------
DATE_____ | DIFF
-------------------------------------------
2009-12-29 | 0
2010-01-06 |
2010-02-10 |
2010-03-18 |
2010-04-13 |
-------------------------------------------
Подскажите, как лучше рассчитывать количество дней(поле DIFF) между двумя датами? | |
|
|
|
|
|
|
|
для: shokan
(25.02.2011 в 14:00)
| | Всех удобнее воспользоваться MySQL-функцией DATEDIFF();
SELECT DATEDIFF('2010-04-13', '2009-12-29')
|
| |
|
|
|
|
|
|
|
для: cheops
(25.02.2011 в 14:27)
| | Этот вариант удобен, если дата1 и дата2 находятся в разных полях. Если первая, вторая и последующая дата в одном поле, как их загнать в эту функцию? | |
|
|
|
|
|
|
|
для: Shokan
(25.02.2011 в 14:41)
| | В одном поле больше одной даты обычно не держат. | |
|
|
|
|
|
|
|
для: Shokan
(25.02.2011 в 14:41)
| | Только двумя выборками. И в том случае если вы имели в виду что даты находятся в поле с одним именем, и в с лучае если они и правда, в одном поле. | |
|
|
|
|
|
|
|
для: shokan
(25.02.2011 в 14:00)
| | тут ошибка не в структуре бд даже, а в логике мышления. Не нужно, скорее всего, хранить это значение полем. Можно расчитывать его просто когда оно нужно. Тем гибче будет решение (не между соседними, а между любыми датами)
SELECT TO_DAYS(date1) - TO_DAYS(date2) AS 'DIFF'
|
Ну или как cheops показал. | |
|
|
|