|
0 Всего найдено: 7
ssergeyko
Сообщение
22/12/2009 19:49
Копия темы
Алгоритм выбора даты У меня есть массив дат, могу его переписать в mysql-таблицу. Мне надо по двум входным датам(по промежутку дат определить есть ли совпадения с этим массивом..) Вот как на примере: массив 2009-12-01 2009-12-03 2009-12-05 2009-12-06 2009-12-06 2009-12-08 2009-12-18 2009-12-20 Например, мне нужно получить результат, что период "2009-12-16 2009-12-18" может быть в этой последовательности, а переиод "2009-12-18 2009-12-19" нет и период "2009-12-07 2009-12-10" тоже нет, т.е не возможно пересечение периодов, а возможно только совпадение 1-ой даты из проверяемого промежутка с последней датой из массива и совпадение 2-ой даты из проверяемого промежутка с первой датой из массива. Как это правильнее сделать? Может sql-запросом? Только вот не понимаю как составить такой запрос.
msobolev
Сообщение
23/12/2009 13:15
Копия темы
SELECT * FROM dates WHERE date_in BETWEEN date1 AND date 2
ssergeyko
Сообщение
23/12/2009 15:05
Копия темы
почти, но between по аналогии "значение">=min и "значение"<=max и соответственно дата например "2009-12-20 2009-12-21" может быть, правильная то есть, по моему условию, а between ее не пропустит. и самое интересное что если задать входную 1-ую дату меньше чем есть в массиве и 2-ую входную дату больше чем есть в массиве, то between работать не будет. Вот что у меня плучилось: select * from dates where ('$datein'>=datein and '$datein'<dateout) or ('$dateout'>datein and '$dateout'<dateout) or ('$datein'<datein and '$dateout'> dateout) но мне кажется это коряво, и можно написать проще.
msobolev
Сообщение
23/12/2009 15:36
Копия темы
тогда вам проще использовать IN со вложенным запросом SELECT COUNT(date_in) WHERE date_param IN (SELECT * FROM dates) за верность синтаксиса не ручаюсь№№№
fasterx
Сообщение
23/12/2009 23:00
Копия темы
отвлеченный вопрос: почему не использовать unix timestamp формат для даты
ssergeyko
Сообщение
24/12/2009 09:27
Копия темы
0
А смысл перекодировать даты? Если они уже ф формате date mysql? сравнение и выборка от этого быстрее не будет. |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |