Q:

MySQL selecionar dados por período

Eu estou tentando selecionar dados que comecem em uma data e termine em outra, estou fazendo desta forma:
SELECT * FROM vendas WHERE feita_em >= '2019-10-10' AND feita_em <= '2019-10-11'

E este é o resultado:

Porém eu possuo dados no dia 11, mas eles não estão sendo mostrados na query, apenas o dia 10, e eu preciso desses dados para produzir meus relatórios.

A:

O fator é que você grava datetime e faz comparação com date uma solução é utilizar a função date() do banco da seguinte forma:
SELECT * FROM vendas WHERE date(feita_em) >= '2019-10-10' 
                       AND date(feita_em) <= '2019-10-11'

isso já vai resolver porque independente de hora que a data tem ele só vai considerar a data.
Uma outra forma seria adequar o hora nessa comparação onde a data inicial começa a 00:00:00 horas e a data final termina das 23:59:59 sendo ai desnecessário a conversão da data armazenada no banco, exemplo:
SELECT * FROM vendas WHERE feita_em >= '2019-10-10 00:00:00' 
                       AND feita_em <= '2019-10-11 23:59:59'

Com BETWEEN e o ajuste que já foi explicado:
SELECT * FROM vendas WHERE date(feita_em) BETWEEN '2019-10-10' AND '2019-10-11' // ou
SELECT * FROM vendas WHERE feita_em BETWEEN '2019-10-10 00:00:00' AND '2019-10-11 23:59:59'

