Je vous suggère d'éviter les chaînes et en utilisant le time
type de données:
select * from [Client].[scheduler]
where [Scheduler_Date] = '20120616' and
(CONVERT(time,[time_from])>='11:00') and
(CONVERT(time,[time_to])<='13:06')
(Pourquoi time_from
et time_to
pas déjà time
s?)
J'ai également ajusté la chaîne de date littérale d'utiliser un format sûr (aaaammjj)
D'autre part, il me semble que vous pourriez vouloir trouver des horaires qui se chevauchent (partiellement ou entièrement) avec les points finaux donnés. L'astuce, il est de changer les comparaisons:
where [Scheduler_Date] = '20120616' and
(CONVERT(time,[time_from])<='13:06') and
(CONVERT(time,[time_to])>='11:00')
Cette nouvelle clause WHERE
trouverez toutes les lignes qui se chevauchent 11: 00-13: 06 période de temps, pas seulement ceux qui sont entièrement à l'intérieur.
Alors, quel est le problème avec votre requête? – praveen
Je ne pense pas que vous pouvez appliquer l'opérateur '> =' ou '<=' sur des valeurs de chaîne placées entre guillemets comme ''11: 00'' – yogi
Vous pouvez utiliser l'opérateur <> avec des valeurs de chaîne par exemple WHERE CONVERT (VARCHAR , timeColumn, 108)> = '01: 01: 01 'mais le meilleur moyen est Entre opérateur – praveen