1. SQL / Говнокод #19428

    −52

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    DECLARE @a int;
    Set @a =0;
    
    SELECT a,b,
    
    @a = CASE b
    WHEN '2m' THEN 60
    WHEN '1m' THEN 30
    WHEN '15d' THEN 15
    END
    FROM table1
    
    Where b<= dateadd (day,@a,getdate());

    Подскажите пожалуйста:

    Есть 2 столбца "a" и "b"

    Столбец "a" содержит строковое значение (2m,1m,15d(60 дней, 30 дней, 15 дней))

    Столбец "b" содержит дату

    Необходимо к столбцу "b" прибавить столбец "a" и получить дату(например стобец "b" содержит дату 01.01.2016, а стобец "a" содержит "15d" должно получиться 16.01.2016), но я совсем запутался с кодом.

    Запостил: dernar, 10 Февраля 2016

    Комментарии (39) RSS

    • select dateadd (substring(a, len(a)-1,1), cast(substring(a, 0, len(a)-1) as int), b)
      from table1
      Ответить
    • >но я совсем запутался с кодом
      Нет, ты просто ленивый студент который весь вечер играл в доту вместо того чтобы решать лабы.
      Ответить
      • Эм, ок тока я не понимаю, почему переменную @а выводит как 60 и не прибавляет к дате
        P.S. в доту ни разу не играл
        Ответить
      • >>весь вечер играл в доту
        Лучше бы молился.
        Ответить
        • Круто тебе
          Ответить
        • >>Лучше бы молился.
          играл в доту и молился, чтобы тиммейты не ливнули
          Ответить
          • так если тиммейты ливают, то можно самому без ЛП пивануть.

            Сдается мне, петушок, что в доту ты не играл
            Ответить
            • > можно самому без ЛП пивануть.
              А время своё не жалко, которое на ливанутую катку проебал?
              Ответить
              • Обычно ливают когда уже совсем пипец, так что нет, не жалко.

                Да и вообще я играю не ради победы, а прикольных моментов. В Хотс - это дота от близов
                Ответить
                • moba zlo
                  Ответить
                  • ММОРПГ злее. В мобу хотя бы в любое время можно бегать, а не ходить на рейды в 3 ночи, потому что согильдийцам из москвы так удобней...
                    Ответить
      • Как начать играть в доту и стоит ли?
        Ответить
        • > как начать играть в доту
          Зарегать учётку в стиме и поставить доту.

          > и стоит ли
          Нет, не стоит.
          Ответить
        • Конечно стоит! 10\10 GOTY Столько шапок! Станешь киберспортсменом, будешь миллионы зарабатывать!
          Ответить
          • Спасибо, мне старкрафта первого уже хватило.
            Ответить
        • Ну... дота таки сложная, надо много че знать, уметь тактично мыслить, быстро реагировать ибо один феил - и тебя отпиздят

          Да и комьюнити... пидорас и хуесос - это в доте похвала. А как там ругают - лучше тебе не знать

          Хочешь ворваться в моба - ХОТС. Он проще, быстрее, динамичнее
          Ответить
          • Да мне по большому счету надо просто найти занятие чтобы время проебывать, ну и не сильно задротское. А что есть моба?
            Ответить
            • Это когда 3 лайна, 5 героев и надо снести трон.
              Ответить
              • >5 героев и надо снести трон.
                И чем это не дота? Что такое лайн? Ладно, проще загуглить.
                Ответить
          • Дота сейчас по сравнению с дотой 5 лет назад имеет бешеный темп. Средняя игра 20-30 минут.
            Ответить
    • DECLARE @z int;
      Set @z =0;

      SELECT a,b,

      @z = CASE b
      WHEN '2m' THEN 60
      WHEN '1m' THEN 30
      WHEN '15d' THEN 15
      END
      FROM table1

      Where b<= dateadd (day,@z,getdate());

      Была ошибка, исправил, но код выше не подходит :)
      Ответить
    • Эм, я давно уже передала код и он работает, видимо тут школота тусит)))
      Ответить
    • бля. во я старпер. читаю диалог про доту и половину слов не понимаю )
      хотя, радует, что я еще не такой задрот )))
      Ответить
      • В доту играют, по большй части, секс-меньшинства. (Строгим голосом): Ты секс-меньшинство? Признавайся.
        Ответить

    Добавить комментарий