2010-04-09 4 views
2

i ont la table de base de données comme cedonnées de sélection de table à partir de la date

+-------+--------------+----------+ 
| id | ip  | date | 
+-------+--------------+----------+ 
| 505 |192.168.100.1 |2010-04-03| 
| 252 |192.168.100.5 |2010-03-03| 
| 426 |192.168.100.6 |2010-03-03| 
| 201 |192.168.100.7 |2010-04-03| 
| 211 |192.168.100.10|2010-04-03| 
+-------+--------------+----------+ 

Comment puis-je retirive les données de ce tableau où mois = 03 comment écrire SQL pour le faire.

select * from table where month=03 

quelque chose comme ça.

Répondre

2

Si vous utilisez mysql, utilisez la fonction MONTH() je pense.

select * from table where month(date) = 3 
+0

Ceci est le simp Cette méthode ne permet pas d'utiliser les index, car vous dérivez une nouvelle valeur du contenu de la table, qui n'est pas indexée. –

0

Vous pouvez également

select * from table where '2010-02-31' < date < '2010-04-01' 

devrait fonctionner.

1
select * from table where month(date) = 3 

Si vous êtes à la recherche sur 2010-03, il serait recommandé de le faire de cette façon:

select * from table where date >= '2010-03-01' AND date < '2010-04-01' 

Parce que cette requête utilisera un index si disponible

1
SELECT * FROM Table WHERE month(date) = 3 

OU en utilisant la datepart Fonction:

SELECT * FROM Table WHERE datepart(mm, date)=3 
Questions connexes