Well, as far as I know this is not possible, but you can add OR conditions in your code instead of IN, so I'd look something like this:
SELECT
*
FROM
Conteudo
WHERE
'2018-03-22' BETWEEN DATE(DataInicio) AND DATE(DataFim)
OR '2018-03-23' BETWEEN DATE(DataInicio) AND DATE(DataFim)
...
Follow the example with tests:
CREATE TABLE teste_datas(
descricao VARCHAR(255),
data_inicio DATE,
data_fim DATE
);
INSERT INTO teste_datas(descricao, data_inicio, data_fim)
VALUES('desc 1', '2018-03-01', '2018-03-22'),
('desc 1', '2018-03-01', '2018-03-23'),
('desc 2', '2018-03-01', '2018-03-24'),
('desc 3', '2018-03-01', '2018-03-08'),
('desc 4', '2018-03-01', '2018-03-02');'
If I run this query
:
SELECT
*
FROM teste_datas
WHERE '2018-03-22' BETWEEN data_inicio AND data_fim;
The result will be desc1, desc2 e desc3
since the date I'm looking for fits between the two periods
SELECT*FROMteste_datasWHERE'2018-03-22'BETWEENdata_inicioANDdata_fimOR'2018-03-07'BETWEENdata_inicioANDdata_fim;
IfIaddOR
toquery
itwillreturndesc1,desc2,desc3edesc4
becausetheseconddatealsofitsinarow.