Je recherche une bonne instruction SQL pour sélectionner toutes les lignes du jour précédent dans une table. La table contient une colonne datetime. J'utilise SQL Server 2005.
sql
sql-server
sql-server-2005
rudimenter
la source
la source
SELECT *
renverra toutes les dates avec leurs heures d'origine.SELECT getdate(),dateadd(day,datediff(day,1,GETDATE()),0)
je reçois:2016-02-01 10:27:54.733 2016-01-31 00:00:00.000
Pour obtenir la valeur «aujourd'hui» en SQL:
Pour obtenir "hier":
Pour obtenir "aujourd'hui moins X jours": changez le -1 en -X.
Donc, pour toutes les lignes d'hier, vous obtenez:
la source
Il semble que la réponse évidente manquait. Pour obtenir toutes les données d'une table (Ttable) où la colonne (DatetimeColumn) est une date / heure avec un horodatage, la requête suivante peut être utilisée:
Cela peut facilement être changé pour aujourd'hui, le mois dernier, l'année dernière, etc.
la source
DatetimeColumn BETWEEN DATEADD(day, DATEDIFF(day, 1, GETDATE()) ,0) AND DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
que car il doit évaluer le DATEDIFF () sur chaque lignela source
C'est un fil vraiment vieux, mais voici mon point de vue. Plutôt que 2 clauses différentes, une supérieure et inférieure à. J'utilise cette syntaxe ci-dessous pour sélectionner les enregistrements à partir d'une date. Si vous voulez une plage de dates, les réponses précédentes sont la solution.
Dans le cas ci-dessus, X sera -1 pour les enregistrements d'hier
la source
Impossible de le tester pour le moment, mais:
la source
Cela devrait le faire:
la source
Dans SQL Server, procédez comme suit:
Vous devez convertir les deux côtés de l'expression à ce jour pour éviter les problèmes de mise en forme de l'heure.
Si vous avez besoin de contrôler l'intervalle plus en détail, vous devriez essayer quelque chose comme:
la source
Une autre façon de dire "Hier" ...
Cela ne fonctionnera probablement pas bien le 1er janvier, ainsi que le premier jour de chaque mois. Mais à la volée, c'est efficace.
la source
Eh bien, il est plus facile de convertir la colonne datetime en date et de la comparer.
la source
subdate (now (), 1) renverra l'horodatage d'hier Le code ci-dessous sélectionnera toutes les lignes avec l'horodatage d'hier
la source