Olá, tenho uma tabela com um campo de data e algumas outras informações. Quero selecionar todas as entradas da semana anterior, (semana começa no domingo).
valores da tabela:
id date
2 2011-05-14 09:17:25
5 2011-05-16 09:17:25
6 2011-05-17 09:17:25
8 2011-05-20 09:17:25
15 2011-05-22 09:17:25
Quero selecionar todos os ids da semana passada, a saída esperada é 5, 6, 8. (id 2 não está na semana passada e id 15 está na semana atual).
Como escrever e consultar SQL para o mesmo.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
durante semanas, mas acho que seu alvo não são semanas reais. Pelo menos ele não mencionou s / t como ISO-8601, ou se ele quer que a virada do ano seja levada em consideração.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Respostas:
fonte
fonte
id 15
...Eu uso a função YEARWEEK especificamente para voltar à semana anterior inteira do calendário (ao contrário de 7 dias antes de hoje). YEARWEEK também permite um segundo argumento que definirá o início da semana ou determinará como a primeira / última semana do ano será tratada. YEARWEEK permite que você mantenha o número de semanas para retroceder / avançar em uma única variável e não incluirá o mesmo número de semanas de anos anteriores / futuros, e é muito mais curto do que a maioria das outras respostas aqui.
fonte
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Forma simplificada:
Dados da semana passada:
Dados de 2 semanas atrás:
SQL Fiddle
http://sqlfiddle.com/#!8/6fa6e/2
fonte
Você pode fazer seu cálculo em php e depois adicioná-lo à sua consulta:
agora isso vai dar a data de uma semana atrás
fonte
Provavelmente, a maneira mais simples seria:
Por 8 dias (ou seja, de segunda a segunda)
fonte
POR FAVOR pessoal ... 'Semana passada' como o OP perguntou e onde eu estava procurando (mas não encontrei nenhuma resposta satisfatória) é NA ÚLTIMA SEMANA.
Se hoje é terça-feira, a ÚLTIMA SEMANA é segunda-feira UMA SEMANA ATRÁS a Domingo UMA SEMANA ATRÁS .
Assim:
Ou por semanas ISO:
fonte
Você precisará calcular qual dia relativo a hoje é domingo em seu middleware (php, python, etc.) *
Então,
fonte
Pode estar em uma única linha:
fonte
Uma maneira simples pode ser esta, este é um exemplo real do meu código e funciona perfeitamente:
fonte
A consulta acima não funcionará. Após a
where
cláusula, se não conseguirmosCAST
o valor da coluna, então não funcionará. Você devecast
o valor da coluna.por exemplo:
fonte
fonte
Costumo fazer uma verificação rápida da "semana passada" também e o que se segue tende a funcionar bem para mim e inclui o dia de hoje.
Se você deseja que NÃO inclua o dia de hoje, basta subtrair um dia extra de @EndDate. Se eu selecionar essas duas variáveis hoje, obter
Se eu quisesse de domingo a domingo, teria o seguinte.
fonte
fonte
Você também pode usar de maneira esay
fonte
i Use isto para a semana a partir de DOMINGO:
fonte
Para mais exemplos, como no mês passado, ano passado, últimos 15 dias, últimos 3 meses
Buscar o último registro da SEMANA
Usando a consulta MySQL abaixo para buscar os registros da última semana da tabela do banco de dados mysql.
fonte
Aqui está uma maneira de obter os registros da última semana, mês e ano no MySQL.
Semana Anterior
Mês passado
Ano passado
fonte
Se você deseja recuperar registros nos últimos 7 dias, pode usar o snippet abaixo:
fonte
Experimente isto:
fonte
Se você já sabe as datas, pode simplesmente usar entre, como este:
fonte