Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: количество дней между двумя датами
 
 автор: shokan   (25.02.2011 в 14:00)   письмо автору
 
 

В таблице есть поле с датами.
-------------------------------------------
DATE_____ | DIFF
-------------------------------------------
2009-12-29 | 0
2010-01-06 |
2010-02-10 |
2010-03-18 |
2010-04-13 |
-------------------------------------------
Подскажите, как лучше рассчитывать количество дней(поле DIFF) между двумя датами?

  Ответить  
 
 автор: cheops   (25.02.2011 в 14:27)   письмо автору
 
   для: shokan   (25.02.2011 в 14:00)
 

Всех удобнее воспользоваться MySQL-функцией DATEDIFF();
SELECT DATEDIFF('2010-04-13', '2009-12-29')

  Ответить  
 
 автор: Shokan   (25.02.2011 в 14:41)   письмо автору
 
   для: cheops   (25.02.2011 в 14:27)
 

Этот вариант удобен, если дата1 и дата2 находятся в разных полях. Если первая, вторая и последующая дата в одном поле, как их загнать в эту функцию?

  Ответить  
 
 автор: Trianon   (25.02.2011 в 15:16)   письмо автору
 
   для: Shokan   (25.02.2011 в 14:41)
 

В одном поле больше одной даты обычно не держат.

  Ответить  
 
 автор: SHAman   (25.02.2011 в 17:32)   письмо автору
 
   для: Shokan   (25.02.2011 в 14:41)
 

Только двумя выборками. И в том случае если вы имели в виду что даты находятся в поле с одним именем, и в с лучае если они и правда, в одном поле.

  Ответить  
 
 автор: SHAman   (25.02.2011 в 14:28)   письмо автору
 
   для: shokan   (25.02.2011 в 14:00)
 

тут ошибка не в структуре бд даже, а в логике мышления. Не нужно, скорее всего, хранить это значение полем. Можно расчитывать его просто когда оно нужно. Тем гибче будет решение (не между соседними, а между любыми датами)

SELECT TO_DAYS(date1) - TO_DAYS(date2) AS 'DIFF'


Ну или как cheops показал.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования