|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.10.2012, 22:59 | #1 |
Пользователь
Регистрация: 06.11.2007
Сообщений: 47
|
Поиск подряд идущих дат
Всем привет, появилась довольно интересная задача: определить промежутки между подряд идущими датами, например:
Код:
|
27.10.2012, 23:33 | #2 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
А не сложно объявить об используемой СУБД?
Опять же, где это нашлись "подряд идущие" даты, если известно, что в SQL СУБД полагаться на желаемый порядок записей в таблицах - дело ненадежное, а точнее сказать, дохлое? Если, конечно, это одна из скулевских СУБД. |
27.10.2012, 23:58 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если даты без времени начать, например, с такого
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 28.10.2012 в 00:38. |
28.10.2012, 00:07 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
28.10.2012, 00:13 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не думаю, что рекурсии здесь уместны
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.10.2012, 00:16 | #6 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
Запрос Аватара работает совсем неплохо, но без сортировки этот пример обречен на ошибки.
Впрочем, добавить три слова к запросу - дело немудреное. |
28.10.2012, 00:18 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
28.10.2012, 00:25 | #8 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
Ну, тут просто. Если некоторые записи были созданы не в хронологии по этим самым записываемым датам, то в поле NextDate будут не всегда правильные даты.
Я сейчас проверил и точно - так и получается. Стоило добавить order by Dt и результат уже выглядел гармонично от начала и до конца выборки (в тестирование принимали 470 записей, где были даты). А получить разность между датами в днях - дело техники. Зависит, правда, от СУБД. А ТС воды в рот набрал. |
28.10.2012, 00:31 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если речь идет о хронологии создания и интервалы мерять именно в этом смысле, то этот запрос ничего не решит, хоть с сортировкой, хоть без неё. Тогда какие-то спец средства СУБД, учитывающие хронологию физического создания записей, если таковые вообще имеются. В MS SQL, например, я таких средств не встречал. Запрос чуть подправил, описка была date2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 28.10.2012 в 00:39. |
28.10.2012, 00:41 | #10 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
А почему "не решит"? Практика говорит об обратном. Протестил. Вроде, выборка как надо складывается. Только с сортировкой. Если это не совпадение. Но совпадение на почти 500 записей...
---- Внимательнее посмотрел. Запрос верно все показывает. Что с сортировкой, что без. Потому как выборка второй даты идет от той, которая выбрана в текущей записи. Так что запрос вполне работоспособен и именно в таком виде. Можно, верно, найти еще методы, но этот прост и понятен "как три рубля". + Последний раз редактировалось Karabash; 28.10.2012 в 00:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Количество идущих подряд символов | hamsidJ | Общие вопросы по Java, Java SE, Kotlin | 4 | 27.01.2013 04:55 |
найти максимальное число пробелов идущих подряд | angelochek7 | Помощь студентам | 0 | 08.05.2012 21:42 |
Объединение подряд идущих сообщений от одного пользователя | Obey-Kun | О форуме и сайтах клуба | 5 | 04.02.2011 17:46 |
минимальная сумма подряд идущих чисел (паскаль) | grom333 | Помощь студентам | 7 | 15.01.2011 03:03 |
Задача о шести подряд идущих единицах. | llTibegll | Помощь студентам | 11 | 06.11.2009 10:04 |