Requête Sql avec plage de dates

Je suis en train de récupérer les enregistrements de la table à l'aide de la requête sql ci-dessous.

SELECT Code,Description FROM Table
WHERE ID= 1 AND FromDate >= '2010-02-14' AND ToDate <= '2012-03-14'

Même si les enregistrements existe pour cette date, la requête ne retourne rien.

ID HID HCode HDescription FromDate            ToDate 
-------------------------------------------------------------------
1  3   H8    New Year     2012-03-14 12:38:00 2012-03-14 12:38:00

Merci de me donner une solution adaptée. Merci pour votre temps !!

  • Vous pouvez poster votre table design?
  • Pouvez-vous nous montrer le FromDate et ToDate de l'enregistrement avec ID=1?
  • Pour être indépendant de tout langage, régional ou le format de date les paramètres, vous devez utiliser la norme ISO-8601 lors de la spécification des dates - YYYYMMDD (n tirets!). Aussi: si celles-ci sont DATETIME oclumns (vous n'avez pas clairement dire), puis <= '20120314' trouverez de quoi avant le 14 Mars - mais si pas lire toutes les entrées pour le 14 Mars (avec un temps de partie > 00:00:00) ....
  • les deux AAAA-MM-JJ ou AAAAMMJJ sont ISO8601. en.wikipedia.org/wiki/ISO_8601
  • YYYY-MM-DD est sans danger pour date mais pas pour datetime. Jetez un oeil ici.
  • yep. la réponse de la mine a été en ce qui concerne : "ces deux formats sont en 8601".
  • Quelque chose que j'ai trouvé, c'est quand vous voulez travailler avec des dates comme une valeur de chaîne, utilisez la date, le format, comme dd MMM yyyy par exemple, 19 mars 2012
  • NON, ILS ne SONT PAS - essayez ceci: set language british; select CAST('2012-03-31' AS DATETIME) et vous recevrez un message d'erreur: Msg 242, Level 16, State 3, Line 3 The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
  • votre lien d'un article parle de MySql et Sql Srver...
  • Vous avez mal lu (que je n'ai presque). Il me dit que Mon Serveur SQL Wishlist, c'est pas Mon SQL Server liste de Souhaits.
  • Pls trouver l'entrée d'enregistrement ci-dessous ID HID HCode HDescription FromDate Jour 1 3 H8 Nouvelle Année 2012-03-14 12:38:00 2012-03-14 12:38:00
  • Tableau Design ID int HID int HCode de type nvarchar(15) HDescription de type nvarchar(50) HFrom smalldatetime HTo smalldatetime
  • hhhh vous droit... 🙂
  • oui, le long de l'ISO-8601 (date et l'heure de portions). Il y a aussi le court (date uniquement) format - mais pour que cela fonctionne fiable peu importe la langue que les paramètres de votre Serveur SQL server, vous devez utiliser YYYYMMDD SANS, les tirets. Je sais que cela va à l'encontre de ce que dit Wikipedia à propos de l'ISO-8601 - mais c'est le la RÉALITÉ de SQL Server en tant qu'elle existe aujourd'hui. Habituez à elle.
  • le T est ce qui fait que le coffre-fort. Supprimer la T et ce sera un échec.
  • Je ne suis pas d'argumenter avec vous. Im juste dire que votre exemple ne sont pas exactes et jouissaient de set language. Aussi - s'il vous plaît notez que Le chemin COURT est de l'ISO et de ne pas ISO8601 comme vous l'avez indiqué. et pour vous rappeler que nous avons parlé de ISO8601 et pas ISO. i.stack.imgur.com/9muVt.jpg ...
  • MSDN explicitement dire que vous devriez écrire CHAQUE ÉLÉMENT. Alors, pourquoi vous voulez supprimer la T ?
  • Je n'ai pas suggéré que vous devriez les enlever. J'ai dit que SI vous l'enlever, vous avez de la difficulté avec certains paramètres régionaux. Il y a deux façons de faire un littéral de chaîne de sécurité pour la conversion implicite de datetime. YYYYMMDD HH:MM:SS ou YYYY-MM-DDTHH:MM:SS. Lorsque vous ne souhaitez pas spécifier le temps de la partie, vous devez utiliser YYYYMMDD.
  • cochez cette page - MSDN SQL Server 2008 R2 docs sur DATETIME - lorsque vous faites défiler vers le milieu de la page, c'listes en vigueur "ISO-8601" formats - et les deux YYYYMMDD ainsi que YYYY-MM-DDTHH:MM:SS sont répertoriés .....
  • Merci. Je pensais : Que faire si je veux le format ISO, mais avec le TEMPS ? est-il correct ? ( il fonctionne) mais est-ce la bonne version ? sélectionnez CAST('201203 13:13:13' AS DATETIME)
  • Merci je vais le lire .

InformationsquelleAutor Syed Ibrahim | 2012-03-20