Como usar maior que operadora com data?


106

Não faço ideia do que está acontecendo aqui. Aqui está a consulta, diretamente do phpMyAdmin:

SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';

Mas recebo consistentemente todos os registros na tabela retornados, incluindo aqueles com data de início 01-11-2011. O que da?


1
A sua coluna start_date é do tipo data ou carimbo de data / hora?
Shamis Shukoor

Respostas:


190

você enlosed start_datecom aspas simples tornando-a corda, utilizar backtickem vez

SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';

1
o que acontece se for carimbo de data / hora?
ichimaru

É importante notar que o MySQL parece um pouco exigente quanto ao formato de data; enquanto 2019/02/08 21:04:07 ou 2019-02-08 21:04:07 produz o resultado esperado, 02-08-2019 21:04:07, usando o formato de data dos EUA, lança uma rede muito mais ampla .
David A. Gray

22

Em sua declaração, você está comparando uma string chamada start_date com a hora.
Se start_date for uma coluna, deve ser

 
  SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
 

(sem apóstrofo) ou


SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';

(com backticks).

Espero que isto ajude.


12

Experimente isso.

SELECT * FROM la_schedule WHERE `start_date` > '2012-11-18';

2

No meu caso, minha coluna era uma data e ela me dava todos os registros. O que fiz foi incluir o tempo, veja o exemplo abaixo

SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';

0

Eu tentei, mas acima não funcionou depois de pesquisas encontradas abaixo da solução.

SELECT * FROM my_table where DATE(start_date) > '2011-01-01';

Ref

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.