Datetime ENTRE la déclaration ne fonctionne pas dans SQL Server
J'ai la requête suivante,
SELECT * FROM LOGS
WHERE CHECK_IN BETWEEN CONVERT(datetime,'2013-10-17') AND CONVERT(datetime,'2013-10-18')
cette requête ne retournant aucun résultat, mais la requête suivante retourner le résultat,
SELECT * FROM LOGS WHERE CHECK_IN >= CONVERT(datetime,'2013-10-17')
pourquoi la première requête ne retournant aucun résultat? Si j'ai fait une erreur pls me corriger.
Pouvez-vous poster les résultats de sélectionner le top 5 des CHECK_IN de JOURNAUX où CHECK_IN >= convert(datetime, '2013-10-17') ?
OriginalL'auteur Able Alias | 2013-10-18
Vous devez vous connecter pour publier un commentaire.
Avez-vous des moments avec vos dates? ENTRE est inclus, mais lorsque vous convertissez 2013-10-18 à une date à laquelle il devient 2013-10-18 00:00:000.00. Tout ce qui est connecté après la première seconde de la 18e ne sera pas montré à l'aide ENTRE les deux, sauf si vous incluez une valeur de temps.
Essayer:
si vous souhaitez rechercher toute la journée du 18.
SQL les champs DATETIME ont millisecondes. J'ai donc ajouté le 999 pour le domaine.
OriginalL'auteur Skerkles
La deuxième requête en retour les résultats de la 17e, ou tout simplement à partir de la 18ème?
La première requête ne retourne que les résultats de la 17ème ou à minuit le 18.
Essayez plutôt ceci
OriginalL'auteur podiluska
Vous n'avez pas d'erreur dans l'une de vos requêtes.
Ma conjecture est la suivante:
OriginalL'auteur apomene
Vous avez besoin de convertir le champ de la date varchar à dépouiller le temps, puis de le convertir en arrière de type datetime, ceci permet de réinitialiser le temps "00:00:00.000'.
OriginalL'auteur NetIntel
À partir de Sql Server 2008, vous avez "date".
De sorte que vous pouvez utiliser
https://docs.microsoft.com/en-us/sql/t-sql/data-types/date-transact-sql
OriginalL'auteur maurox