web-dev-qa-db-fra.com

Comment utiliser plus que l'opérateur avec la date?

Aucune idée de ce qui se passe ici. Voici la requête, directement à partir de phpMyAdmin:

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

Cependant, tous les enregistrements de la table sont systématiquement renvoyés, y compris ceux dont la date de début est le 2012-11-01. Ce qui donne?

94
Clinton J

vous avez enlosé start_date avec une seule citation, ce qui a fait qu’il devienne une chaîne, utilisez backtick à la place

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

Dans votre déclaration, vous comparez une chaîne appelée date_début avec l'heure.
Si start_date est une colonne, elle doit être soit


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

(pas d'apostrophe) ou


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

(avec backticks).

J'espère que cela t'aides.

21
Kneel-Before-ZOD

Essaye ça.

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

Dans mon cas, ma colonne était une date et heure, elle me donnait tous les enregistrements. Ce que j'ai fait est d'inclure le temps, voir l'exemple ci-dessous

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