none
Изменить формат даты с dd.mm.yyyy на dd.mm RRS feed

  • Вопрос

  • Добрый день. Возникла такая проблема: вытягиваю данные из базы sql средствами Sharepoint Designer и создаю внешний список, есть поле День рождения, он имеет тип dd,mm,yyyy. Надо выводить только тех у кого день рождения сегодня, но если наложить фильтр на такую дату, то программа не выведет тех у кого например дата = 30.07.1991, а будет сравнивать с 30.07.2014 (данный фильтр накладывается в настройках списка поле = [Сегодня]).

    Подскажите как можно дату получить в формате dd,mm??? может нужно сделать какие-то манипуляции при создании внешнего списка? или править в коде, только подскажите где или как сравнить даты, что бы мне выдавало людей у которых день рождения равен Сегодня

    Заранее спасибо

    30 июля 2014 г. 14:31

Ответы

  • Добрый день.

    Я бы либо перетянул данные в SP и сделал календарь - в календаре можно указать событие повторяющимся и оно будет отображаться независимо от года.

    Второй вариант - добавьте в таблице SQL дополнительный столбец и пересчитывайте в нем дату рождения с текущим годом, а потом фильтруйте по этому столбцу.

    Можно еще попробовать варианты с Birthday_Month: =MONTH([Birthday]) и Birthday_Day: =DAY([Birthday]).

    Если веб-часть самописная, то решается проще - динамическим SPQuery.

    31 июля 2014 г. 5:26
  • Я высчитываю дни до дня рождения так

    =ЕСЛИ(ДАТА(ГОД(Изменено);МЕСЯЦ(BD);ДЕНЬ(BD))>=Изменено;РАЗНДАТ(ДАТА(ГОД(Изменено);МЕСЯЦ(Изменено);ДЕНЬ(Изменено));ДАТА(ГОД(Изменено);МЕСЯЦ(BD);ДЕНЬ(BD));"YD");-1)

    Каждый день пробегаюсь по списку и обновляю его. Получается что год беру текущий!

    Причем у меня в шарике БАГ в этой формуле пофигу > или >= Поэтому изменники в свой день получают тоже -1. Но обошел фильтрами.

    1 августа 2014 г. 10:09

Все ответы

  • Добрый день.

    Я бы либо перетянул данные в SP и сделал календарь - в календаре можно указать событие повторяющимся и оно будет отображаться независимо от года.

    Второй вариант - добавьте в таблице SQL дополнительный столбец и пересчитывайте в нем дату рождения с текущим годом, а потом фильтруйте по этому столбцу.

    Можно еще попробовать варианты с Birthday_Month: =MONTH([Birthday]) и Birthday_Day: =DAY([Birthday]).

    Если веб-часть самописная, то решается проще - динамическим SPQuery.

    31 июля 2014 г. 5:26
  • Добрый день.

    Я бы либо перетянул данные в SP и сделал календарь - в календаре можно указать событие повторяющимся и оно будет отображаться независимо от года.

    Второй вариант - добавьте в таблице SQL дополнительный столбец и пересчитывайте в нем дату рождения с текущим годом, а потом фильтруйте по этому столбцу.

    Можно еще попробовать варианты с Birthday_Month: =MONTH([Birthday]) и Birthday_Day: =DAY([Birthday]).

    Если веб-часть самописная, то решается проще - динамическим SPQuery.

    Расскажите пожалуйста подробнее про вариант с "Можно еще попробовать варианты с Birthday_Month: =MONTH([Birthday]) и Birthday_Day: =DAY([Birthday])". Самописной веб-части нет, может подскажите как её правильно написать?
    31 июля 2014 г. 6:17
  • Я думаю вам больше подойдет вариант с дополнительным SQL столбцом и один раз в год его обновлять.

    31 июля 2014 г. 7:28
  • Я высчитываю дни до дня рождения так

    =ЕСЛИ(ДАТА(ГОД(Изменено);МЕСЯЦ(BD);ДЕНЬ(BD))>=Изменено;РАЗНДАТ(ДАТА(ГОД(Изменено);МЕСЯЦ(Изменено);ДЕНЬ(Изменено));ДАТА(ГОД(Изменено);МЕСЯЦ(BD);ДЕНЬ(BD));"YD");-1)

    Каждый день пробегаюсь по списку и обновляю его. Получается что год беру текущий!

    Причем у меня в шарике БАГ в этой формуле пофигу > или >= Поэтому изменники в свой день получают тоже -1. Но обошел фильтрами.

    1 августа 2014 г. 10:09