![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
okcomputer |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 30.4.2008 Репутация: нет Всего: нет |
БД: reg - дата размещения отчета, new - дата до кот. необходимо разместить отчет, period - периодичность в днях (7, 31, 93)
пользователь загружает отчет upload + вып. запрос:
Необходимо определить актуальность отчета:
Проблема возникнет, если разместить отчет раньше срока. дата в new каждый раз передвигается на period. Как можно решить проблему? Это сообщение отредактировал(а) okcomputer - 10.7.2008, 11:03 |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Возьми ручку, листок бумаги, отодвинь клавиатуру в сторону и попробуй решить эту задачу на бумаге.
Насколько я понимаю, проблема не в синтаксисе SQL, а просто в алгоритме решения этой, в общем-то, несложной задачки. Ты сначала реши, что тебе от чего надо отнять, а потом реализуй уже в синтаксисе. Делать два дела одновременно неудобно. |
|||
|
||||
okcomputer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 30.4.2008 Репутация: нет Всего: нет |
)
думаю, месяц из now() нужно сравнивать с мес. поля new. если они не совпадают, то смещаем new на period ? т.е.
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
не надо сравнивать месяцы. еще раз говорю: реши задачку на бумажке, без месяцев и форматов дат. просто с абстрактными датами.
представь, что ты можешь их свободно складывать и вычитать вот у тебя есть X - дата размещения отчета Y - дата протухания отчета. Z - время, пока отчет свежий составь формулу. ты же пока сама еще не понимаешь, что от чего надо отнять. а уже пытаешься это написать в синтаксисе. |
|||
|
||||
okcomputer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 30.4.2008 Репутация: нет Всего: нет |
x + z =y
if (now())> y //если 1, то отчет просрочен. это выполняется только если юзер размещает отчет каждый раз в одну и ту же дату. что не верно в моем варианте? |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
почему это не выполняется?
какая разница, когда класть колбасу в холодильник? если я её положил две недели назад, а срок кодности - неделя, то она протухла три недели назад - протухла 3 дня назад - свежая. все работает |
|||
|
||||
okcomputer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 30.4.2008 Репутация: нет Всего: нет |
допустим отчет нужно размещать кажд. месяц до 20 числа: если x=20 z=31 (или 30) у=20 условие вып. но если пользователь разместит отчет раньше (15), то уже 15 числа сл. мес. отчет попадет в категорию неактуальных, хотя до конца срока остается еще 5 дней. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
А какая разница, когда он разместил? Считай от х, а не от фактического размещения.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |