Задать вопрос
  • Запрос периода времени в течение дня?

    @alexalexes
    Это тестовый набор данных, я просто взял и накидал самые "коварные" временные метки (даже их подписал комментариями каждую временную метку), чтобы сразу видеть при отладке, где может хромать логика, о чем я предупредил:
    С помощью отладочного подзапроса, который представлен вместо таблицы t, можно увидеть особенности нумерации и определения отрезка на границах интервала и всего периода.

    Если его вписать как подзапрос, то основной конструкции запроса "будет казаться", что выборка t взята из реальной таблицы, а не сгенерирована на лету. Мне просто было лень возиться с созданием реальной таблицы для отладки запроса, к тому же в таком виде можно отлаживать в любом СУБД клиенте, не заботясь, нужно ли что-то для этого создавать. Скопировал и сразу выполнил, проверил.
    (select STR_TO_DATE('01.06.2018 08:50:00', '%d.%m.%Y %H:%i:%s') event_date union all -- до дневного периода
          select STR_TO_DATE('01.06.2018 08:59:59', '%d.%m.%Y %H:%i:%s') event_date union all -- за секунду до начала дневного периода
          select STR_TO_DATE('01.06.2018 09:00:00', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно на начале дневного периода первого интервала
          select STR_TO_DATE('01.06.2018 09:00:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно после одной секунды в первом интервале дневного периода
          select STR_TO_DATE('01.06.2018 09:14:59', '%d.%m.%Y %H:%i:%s') event_date union all -- за секунду до окончания первого интервала
          select STR_TO_DATE('01.06.2018 09:15:00', '%d.%m.%Y %H:%i:%s') event_date union all -- начало второго интервала
          select STR_TO_DATE('01.06.2018 09:15:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно после первой секунды второго интервала
          select STR_TO_DATE('01.06.2018 17:59:59', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно за секунду до окончания дневного периода  
          select STR_TO_DATE('01.06.2018 18:00:00', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно на границе дневного периода
          select STR_TO_DATE('01.06.2018 18:00:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно секунда после дневного периода
          select STR_TO_DATE('01.06.2018 18:10:00', '%d.%m.%Y %H:%i:%s') event_date) t

    По последнему сообщению видно, что вам нужно генерировать последовательность строк. Проблема в mySQL то, что у него нет специальных функций-генераторов для этой цели, и нужно использовать опорную таблицу, у которой количество строк с лихвой перекрывает потребности задачи. Например, можно генерировать списки, как в примере выше с помощью запроса ниже с использованием таблицы any_big_table:
    select @time_counter := @time_counter + 1 as number, -- номер интервала
             SEC_TO_TIME(inter2.width) as width,           -- ширина интервала
             SEC_TO_TIME(@time_step) as begin,             -- начало интервала
             SEC_TO_TIME(@time_step := @time_step + inter2.width) as end -- конец интервала
    from any_big_table, -- любая таблица, у которой в любую погоду всегда найдется over9000 строк
    (
     select inter.*, -- передаем константы выше как они есть
            @time_step := inter.begin, -- счетчик по времени
            @time_counter := 0      -- счетчик по порядку
     from (
            select TIME_TO_SEC('09:00:00') as begin, -- начало дневного периода
                   TIME_TO_SEC('18:00:00') as end,   -- окончание дневного периода
                   TIME_TO_SEC('00:15:00') as width  -- ширина интервала
          ) inter -- константно-параметрический подзапрос
    ) inter2 -- общий параметрический подзапрос, несет на себе функцию инициализации переменных-счетчиков @time_step и @time_counter
    where @time_step >= inter2.begin -- нижнее ограничение выборки
      and @time_step + inter2.width <= inter2.end -- верхнее ограничение выборки

    Только мне не понятно, как этот список вы хотите связать с первоначальной постановкой задачи - идентифицировать временные точки, к какому интервалу они относятся.
  • Как из класса обратиться к элементу формы?

    @alexalexes
    Для хранения тем лучше использовать список тем, и лучше этот список инкапсулировать в отдельный класс и выделить те методы списка, которые нужны вашей задаче.
    private List<Lesson> Lessons = new List<Lesson>();
    private Lesson lesson_Add(string name, string path, string description)
            {
                Lesson lesson = new Lesson(name, path, description); 
                Lessons.Add(Lesson);  // создали тему и положили ее в список, который будет доступен  в классе формы, хорошо бы его использовать через свой класс помимо того, что есть класс для элемента списка.
                ToolStripItem menuitem = themesToolStripMenuItem.DropDownItems.Add(lesson.LessonDescription);
                menuitem.Name = lesson.LessonName;
                menuitem.Tag = Lessons.Count() - 1; // закладываем информацию об индексе из списке тем в элемент меню, чтобы потом достать ее при обращении к sender
                menuitem.Click += new EventHandler(lesson_Click);
                return lesson;
            }

    А в клике будет обработка:
    var menu_item = (ToolStripMenuItem) sender; // из объекта sender получаем элемент события, его нужно привести к соответствующему типу объекта интерфейса
                var less_index = Convert.ToInt32(menu_item.Tag); // из тега достаем информацию, как нам обратиться к элементу, с которым связано отображение, в данном случае тут используем индекс в списке элементов тем, но можно положить любую произвольную инфу.
                var less_path = Lessons[less_index].LessonPath; // обращаемся к списку тем и достаем нужное свойство
                textBox1.Text = less_path; // выводим свойство
  • Почему отключается модем при подключении ноутбука по wifi?

    @alexalexes
    Модем подключен к роутеру в WAN-порт роутера или в один из LAN портов роутера?
    Роутер работает в роли свитча? и, вообще, на каком из двух устройств запущена DHCP служба?
    В ноутбуке в ручную забиты настройки TCP/IP или он получает их динамически (от службы DHCP роутера или модема)?
  • Почему на почту приходят пустые поля формы?

    @alexalexes
    Проверяли, что из себя представляет $arFields перед отправкой?
    var_dump($arFields);
  • Как открыть и закрыть DVD-RW дисковод?

    @alexalexes
    Берите проблему шире. А если у вас куча дисководов?)))
    www.cyberguru.ru/sources/cpp/hardware/poluchit-spi...
  • Как вывести количество оставшихся товаров на сайт?

    @alexalexes
    Я не знаком с 1С. Но наверняка, вам в вопросе нужно было представить текст запроса к 1С, который формирует список оставшихся товаров, и другой запрос, формирующий список предложений.
    Гадать на выходной выборке, не видя сам запрос или по каким критериям сформирована выборка, это гадание на кофейной гуще. Советы все равно будут направлены на изменение этих запросов.
  • Как выполнить INSERT с подзапросом?

    @alexalexes
    Одно свойство можно обернуть в скобки, а вот для кортежа свойств select не предусмотрено такой конструкции в синтаксисе, поэтому ошибка.
    Вот, если подзапрос обернуть в скобки: (select ... from ... where ...), то да, они уместны, и то, этому подзапросу понадобится свое имя: (....) subquery_name. Не все СУБД позволяют делать анонимные подзапросы, например, mySQL.
  • Как открыть и закрыть DVD-RW дисковод?

    @alexalexes
    Попробуйте так:
    int main()
    {
      mciSendString("open f: type cdaudio alias cd", NULL, 0, NULL);
      mciSendString("set cd door open wait", NULL, 0, NULL);
      Sleep(3000);
      mciSendString("set cd door closed wait", NULL, 0, NULL);
      return 0;
    }
  • Как выполнить INSERT с подзапросом?

    @alexalexes
    Зачем select в скобки взяли? он в insert-e никакой синтаксической специфики не имеет, и ни сколько не обязан подражать синтаксису values.
  • Как вытащить модели с критерием по связи, а также не имеющим связи?

    @alexalexes
    Исправил некоторую ошибку с момента первоначального ответа.
    Все равно придется искать множество арендованных мест и находить отрицание.
  • Можно ли в условиях языка С указывать кириллицу?

    @alexalexes
    Можете попробовать сравнить tolower(symbol) с кодом символа 'а', но вы должны точно уверены, что этот код соответствует этой букве. Это зависит от того, какую кодировку для символов с кодом > 128 использует компилятор.
    if (tolower(symbol) == 'a' || tolower(symbol) == 224)
  • Можно ли в условиях языка С указывать кириллицу?

    @alexalexes
    Если кодировка файла с кодом двухбайтная, например, unicode, то кириллические символы, набранные как константы, будут восприниматься по коду символа > 255, а по байтам > 1.
  • Двойной запрос к базе?

    @alexalexes
    Вероятно, реализация заполнения произвольного набора полей данных.
    Если их всего две вариации - телефон и почта, то очень непрактичный вариант.
  • Запрос периода времени в течение дня?

    @alexalexes
    Временной отрезок можно посчитать из тех же соображений, что и номер дневного интервала. Набросал запрос. С помощью отладочного подзапроса, который представлен вместо таблицы t, можно увидеть особенности нумерации и определения отрезка на границах интервала и всего периода.
    SELECT t.event_date,
    case
      when TIME_TO_SEC(t.event_date) >= inter.begin AND TIME_TO_SEC(t.event_date) < inter.end -- типичный случай, определяем номер интервала
      then floor((TIME_TO_SEC(t.event_date) - inter.begin) / inter.width) + 1
      
      when TIME_TO_SEC(t.event_date) = inter.end -- особый случай, определяем правильный номер интервала ровно на окончании дневного периода
      then floor((inter.end - inter.begin) / inter.width)
      
      when TIME_TO_SEC(t.event_date) < inter.begin  -- маркируем номер интервала до начала дневного периода
      then -1 
    
      when TIME_TO_SEC(t.event_date) > inter.end -- маркируем номер интервала после окончания дневного периода
      then -2
      
      else null -- экстраситуация, если when-then охватывают все условия, то сюда никогда не попадем 
    
    end as full_interval_number,
    case
      when TIME_TO_SEC(t.event_date) >= inter.begin AND TIME_TO_SEC(t.event_date) < inter.end  -- типичный случай, определяем время начала интервала
      then SEC_TO_TIME(floor((TIME_TO_SEC(t.event_date) - inter.begin) / inter.width) * inter.width  + inter.begin)
      
      when TIME_TO_SEC(t.event_date) = inter.end -- особый случай, определяем правильное время начала интервала ровно на окончании дневного периода
      then SEC_TO_TIME(floor((TIME_TO_SEC(t.event_date) - inter.begin - 1) / inter.width) * inter.width  + inter.begin)
      
      when TIME_TO_SEC(t.event_date) < inter.begin -- если за пределами дневного периода, то время окончания за-null-яем
        OR TIME_TO_SEC(t.event_date) > inter.end
      then null
      
      else null -- экстраситуация, если when-then охватывают все условия, то сюда никогда не попадем 
    
    end as full_interval_begin,
    case
      when TIME_TO_SEC(t.event_date) >= inter.begin AND TIME_TO_SEC(t.event_date) < inter.end -- типичный случай, определяем время окончания интервала
      then SEC_TO_TIME(ceil((TIME_TO_SEC(t.event_date) - inter.begin + 1) / inter.width) * inter.width  + inter.begin)
      
      when TIME_TO_SEC(t.event_date) = inter.end -- особый случай, определяем правильное время окончания интервала ровно на окончании дневного периода
      then SEC_TO_TIME(ceil((TIME_TO_SEC(t.event_date) - inter.begin - 1) / inter.width) * inter.width  + inter.begin)
      
      when TIME_TO_SEC(t.event_date) < inter.begin -- если за пределами дневного периода, то время окончания за-null-яем
        OR TIME_TO_SEC(t.event_date) > inter.end
      then null
      
      else null -- экстраситуация, если when-then охватывают все условия, то сюда никогда не попадем
    
    end as full_interval_end
    FROM (select STR_TO_DATE('01.06.2018 08:50:00', '%d.%m.%Y %H:%i:%s') event_date union all -- до дневного периода
          select STR_TO_DATE('01.06.2018 08:59:59', '%d.%m.%Y %H:%i:%s') event_date union all -- за секунду до начала дневного периода
          select STR_TO_DATE('01.06.2018 09:00:00', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно на начале дневного периода первого интервала
          select STR_TO_DATE('01.06.2018 09:00:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно после одной секунды в первом интервале дневного периода
          select STR_TO_DATE('01.06.2018 09:14:59', '%d.%m.%Y %H:%i:%s') event_date union all -- за секунду до окончания первого интервала
          select STR_TO_DATE('01.06.2018 09:15:00', '%d.%m.%Y %H:%i:%s') event_date union all -- начало второго интервала
          select STR_TO_DATE('01.06.2018 09:15:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно после первой секунды второго интервала
          select STR_TO_DATE('01.06.2018 17:59:59', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно за секунду до окончания дневного периода  
          select STR_TO_DATE('01.06.2018 18:00:00', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно на границе дневного периода
          select STR_TO_DATE('01.06.2018 18:00:01', '%d.%m.%Y %H:%i:%s') event_date union all -- ровно секунда после дневного периода
          select STR_TO_DATE('01.06.2018 18:10:00', '%d.%m.%Y %H:%i:%s') event_date) t,       -- после дневного периода
        (select TIME_TO_SEC('09:00:00') as begin, -- начало дневного периода
                TIME_TO_SEC('18:00:00') as end,   -- окончание дневного периода
                TIME_TO_SEC('00:15:00') as width  -- ширина интервала
         ) inter
  • Зашифрованный адрес картинки в браузере?

    @alexalexes
    Если в браузере "Сохранить как..." не сработало, то тупо прогнать url через любой онлайн-конвертер.
  • Как реализовать следующий запрос в postgresql?

    @alexalexes
    Я понял специфичность выборки.
    Аналитические функции тут не помогут.
    В ходе запроса нужна пользовательская переменная, которая бы хранила последний удачно выбранный ID_2 по условию и одновременно отсекала выборку.
    Если найдете нечто в PostgreSQL, куда можно писать и читать переменную в ходе выборки, то достаточно переписать запрос MySQL, а так, извините, процедурка - отдельно, декларативка - отдельно.
  • Как обойти ошибку при добавлении столбца в БД?

    @alexalexes
    Добавьте в alter table значения по умолчанию для проблемных столбцов, но проконтролируйте логику приложения, чтобы оно правильно интерпретировало новое значение, если где-то используется 0.