Выберите записи между двумя датами в двух столбцах

Стандарт C++ гарантии , что разметки памяти C struct и C++ class (или struct - то же самое) будут идентичны, при условии, что C++ class / struct соответствия критерии того, чтобы быть POD ("Простые Данные"). Таким образом, что означает POD?

класс А или структура являются POD если:

  • Все элементы данных общедоступны и они POD или фундаментальные типы (но не ссылка или указатель на типы элемента), или массивы такого
  • , Это не имеет никаких пользовательских конструкторов, операторов присваивания или деструкторов
  • , Это не имеет никаких виртуальных функций
  • , Это не имеет никаких базовых классов

О единственном "C ++-isms" позволенный, невиртуальные функции членства, статические участники и функции членства.

, Так как Ваш класс имеет и конструктора и деструктор, он официально говорит не типа POD, таким образом, гарантия не содержит. (Хотя, как другие упомянули, на практике эти две разметки, вероятно, будут идентичны на любом компиляторе, который Вы пробуете, пока нет никаких виртуальных функций).

раздел See [26.7] из FAQ C++, Облегченный для получения дополнительной информации.

5
задан OMG Ponies 25 September 2009 в 20:45
поделиться

6 ответов

Standard Between должно работать (T-SQL) .

SELECT * FROM MyTable WHERE @MYDATE BETWEEN ColumnDateFrom AND ColumnDateFrom
6
ответ дан 18 December 2019 в 11:58
поделиться

Если я правильно понимаю, попробуйте следующее:

SELECT
    *
    FROM MyTable 
    WHERE ColumnDateFrom <= '2009-09-25' AND ColumnDateTo >= '2009-09-25'
4
ответ дан 18 December 2019 в 11:58
поделиться

Попробуйте следующее:

SELECT * FROM MyTable WHERE '2009-09-25' BETWEEN ColumnDateFrom AND ColumnDateTo
4
ответ дан 18 December 2019 в 11:58
поделиться
select * 
from MyTable 
where ColumnDateFrom <= '2009-09-25' 
    and ColumnDateTo >= '2009-09-25'
1
ответ дан 18 December 2019 в 11:58
поделиться

mysql:

select * from MyTable where '2009-09-25' between ColumnDateFrom and ColumnDateTo
0
ответ дан 18 December 2019 в 11:58
поделиться

Просто удалите "Is"

Select * From MyTable 
Where '2009-09-25' Between ColumnDateFrom to ColumnDateTo

, не забудьте рассмотреть временной интервал, если в значениях столбца есть дата и время ... (предполагается, что DateOnly () - это функция, которая удаляет время из столбца datetime)

Select * From MyTable 
Where '2009-09-25' Between DateOnly(ColumnDateFrom) 
                        To DateOnly(ColumnDateTo)
0
ответ дан 18 December 2019 в 11:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: