[résolu][sql] Requête avec WHERE


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

[résolu][sql] Requête avec WHERE

Message le Mar Juil 01, 2008 20:12

Bonsoir,

Je cherche à faire une requête pour obtenir les enregistrements pour lesquelles le champ "date" vaut, par exemple 1992, sachant que le champ n'est pas formaté comme une date mais comme un texte, par exemple comme suit :

2002, 2002/11, 1995, 2001/05/28...

Comment écrire ce qui suit le WHERE dans la requête ?

Merci d'avance,

Michaël
Dernière édition par OTP le Mar Juil 01, 2008 20:47, édité 1 fois.


Marie-Aude
Modérateur
Modérateur
 
Messages: 11900
Inscription: 5 Juin 2006

Message le Mar Juil 01, 2008 20:15

LIKE %1992%


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 20:16

Et si je veux les dates antérieures à 1992 ?
(désolé, besoin mal exprimé...)


rudddy
WRInaute accro
WRInaute accro
 
Messages: 2570
Inscription: 1 Aoû 2007

Message le Mar Juil 01, 2008 20:25

mon conseil : formate ton champ date comme il faut car même après tu auras besoin d'un index qui sera beaucoup plus optimisé ...


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 20:26

J'aimerais vraiment éviter de passer par ce point (trop de trucs à changer ; je sais, je traîne un boulet...)


rudddy
WRInaute accro
WRInaute accro
 
Messages: 2570
Inscription: 1 Aoû 2007

Message le Mar Juil 01, 2008 20:28

je connais ce sentiment ...

tu sais que tu dois le faire, c'est pour ton bien et malgré cela, tu le fais pas ...


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Mar Juil 01, 2008 20:30

tu peux 'convertir' le type d'un champ à l'aide de CAST()

Ainsi, CAST(champ AS DATE) devrait te permettre d'utiliser > < et BETWEEN


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 20:32

Ok, je vais regarder merci.
Mais il n'y a pas un truc simple pour prendre les 4 premiers caractères du contenu du champ ?

Edit : je regarde LEFT(str,len) ...
Dernière édition par OTP le Mar Juil 01, 2008 20:38, édité 1 fois.


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Mar Juil 01, 2008 20:36

A tout hasard ?

.... WHERE YEAR(CAST(champ AS DATE)) = '1992'


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 20:39

seebz a écrit:A tout hasard ?

.... WHERE YEAR(CAST(champ AS DATE)) = '1992'


Je teste le LEFT, puis ta méthode si ça colle pas.
Merci.


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 20:47

Le LEFT marche.
Merci à tous.


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Mar Juil 01, 2008 20:54

Content que ton problème soit résolu ;)


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Message le Mar Juil 01, 2008 21:03

Moi aussi ! ;)


5_legs
WRInaute passionné
WRInaute passionné
 
Messages: 2072
Inscription: 30 Avr 2006

Message le Mar Juil 01, 2008 21:09

seebz a écrit:Content que ton problème soit résolu ;)


C'est tout simple ou c'est tout bête mais c'est vrai que ça fait plaisir (de le dire aussi)

:-)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité