-1
votes

MySQL Query - Vérifiez entre deux dates sans avoir besoin de récupérer des lignes

J'ai une table qui inclut les dates, j'essaie de vérifier si une date que j'ai tombe entre les dates de la table. Ma requête fonctionne, mais cela ne renvoie rien. Cela semble être très simple, mais je ne peux pas envelopper ma tête autour de lui.

La requête SQL ressemble à ceci: xxx

Les dates sont générées dynamiquement dans Mon script afin que je puisse savoir si ce que je passe dans elle tombe entre les dates de début et de fin de ma table. Je n'ai besoin de données spécifiques de la table, juste un booléen me disant si la date est entre les dates de début et de fin ou non.


3 commentaires

Votre requête comme ça devrait aller bien, vérifiez simplement si vous obtenez des lignes retournées ou non. Si vous l'avez fait, la date est dans la gamme, si vous ne l'avez pas fait.


Merci à la fois de répondre. J'ai lu la question ci-dessus et beaucoup d'autres ici et ailleurs avant de poster. Il ne répond pas à ma question exacte qui souhaite renvoyer le résultat d'un test sur des données récupérées, plutôt que de récupérer les données. Il y a une explication plus longue dans les commentaires ci-dessous la publication de Miroslav.


Et enfin, déterminer comment corriger correctement la question que j'ai compris comment trouver la réponse, ici: lien merci pour votre aide!


3 Réponses :


0
votes

Vous recherchez < code> existe : xxx

espérons que cela aide,


7 commentaires

Vous devez affecter un alias à l'expression, pour faciliter la récupération de la valeur.


Merci Miroslav. Malheureusement, il existe renvoie une valeur de 0 parce que je ne demande pas à MySQL de renvoyer des lignes, mais ne vérifiez que si une date existe entre deux autres dates d'une table. Je peux obtenir le même résultat en php en récupérant les dates de début et de fin des tables et en vérifiant si cet établissement est compris entre eux, j'espérais qu'il y avait un moyen plus élégant de le faire dans Pure SQL. Je suis au courant que ma syntaxe a tort parce que je demande quelque chose qui n'est pas là, mais je ne peux pas comprendre comment retourner une sorte de booléen basé sur le conditionnel.


Salut là-bas, les résultats de existent () sont boolean, 0 si faux, 1 si vrai, quel que soit le nombre de lignes présentes. N'est-ce pas ce que vous recherchez?


Merci d'avoir pris le temps de répondre à nouveau. Je pense que je demande à MySQL de faire quelque chose qu'il n'est pas vraiment conçu pour. Remplacement des variables dans mon poste d'origine, je souhaite savoir si '2007-02-04 entre 2007-01-24 et 2007-02-16'. La première date est transmise sous forme de variable, les deuxième et troisième sont extraites des tables. Existe n'en résout pas malheureusement. Per le doc: "Si une sous-requête renvoie des lignes du tout, il existe une sous-requête est vraie et n'existe pas que la sous-requête est fausse." La requête ne renvoie jamais de lignes du tout, il existe donc toujours faux. Merci d'avoir essayé. J'ai une solution inélégante que je vais utiliser :)


Par curiosité, quelle est votre solution? J'ai l'impression de mal comprendre la question ..


Ma faute entièrement, je sens que je ne sais pas bien la question. Ma solution est - SQL Requête The Table pour Début_Date - SQL Query The Table pour End_Date - PHP Strtotime this_date, Début_Date et End_Date afin qu'ils soient tous des horodatages d'unix - PHP si tel_date> recommencer_date


Et enfin, déterminer comment corriger correctement la question que j'ai compris comment trouver la réponse, ici: https://stackoverflow.com/questions/1647961/how-do-you-write -a-conditionnel-in-mysql-select-stateeme nt < / a>. Donc, ma solution est SELECT (CASE WHILE LOW_DATE entre Début_Date et End_Date, puis 1 autre 0 extrémité) Comme date_result , et cela fonctionne parfaitement. Merci pour ton aide!



0
votes

1 commentaires

Merci pour la réponse. Malheureusement, ce n'est pas les dates qui posent un problème, c'est le fait que je ne demande pas à MySQL de retourner des lignes, mais ne vérifiez que si une date existe entre deux autres dates d'une table. Je peux obtenir le même résultat en php en récupérant les dates de début et de fin des tables et en vérifiant si cet établissement est compris entre eux, j'espérais qu'il y avait un moyen plus élégant de le faire dans Pure SQL.



0
votes

J'ai formulé la question légèrement fausse, dans laquelle j'essayais de retourner le résultat d'un conditionnel. Une fois que j'ai réalisé comment demander à Google, je suis rapidement proposé cette solution: xxx

grâce aux autres personnes qui ont répondu, votre contribution mettez ma pensée sur la bonne voie.


0 commentaires