J'essaie d'interroger une plage de temps spécifique:
J'ai vu que vous pouvez obtenir des données pour une plage particulière, mais uniquement du début à la fin et c'est un peu plus spécifique. Je n'ai vu aucune commande SQL Server qui m'aiderait directement à ce sujet, alors quelqu'un d'autre a-t-il une idée de la façon dont vous formeriez cela?
J'ai vu this , mais je ne pense pas que ce soit assez précis pour cette gamme.
Merci!
Je suppose que vous voulez que ces trois éléments fassent partie des critères de sélection. Vous aurez besoin de quelques déclarations dans votre où, mais elles seront similaires au lien contenu dans votre question.
SELECT *
FROM MyTable
WHERE [dateColumn] > '3/1/2009' AND [dateColumn] <= DATEADD(day,1,'3/31/2009')
--make it inclusive for a datetime type
AND DATEPART(hh,[dateColumn]) >= 6 AND DATEPART(hh,[dateColumn]) <= 22
-- gets the hour of the day from the datetime
AND DATEPART(dw,[dateColumn]) >= 3 AND DATEPART(dw,[dateColumn]) <= 5
-- gets the day of the week from the datetime
J'espère que cela t'aides.
vous pouvez essayer ceci (je n'ai pas de serveur sql ici aujourd'hui donc je ne peux pas vérifier la syntaxe, désolé)
select attributeName
from tableName
where CONVERT(varchar,attributeName,101) BETWEEN '03/01/2009' AND '03/31/2009'
and CONVERT(varchar, attributeName,108) BETWEEN '06:00:00' AND '22:00:00'
and DATEPART(day,attributeName) BETWEEN 2 AND 4
Je (en utilisant PostgreSQL sur PGadmin 4) recherche des résultats après ou le 21 novembre 2017 à midi, comme ceci (compte tenu du format d'affichage des heures sur ma base de données):
select * from Table1 where FIELD >='2017-11-21 12:00:00'
select * from table where
(dtColumn between #3/1/2009# and #3/31/2009#) and
(hour(dtColumn) between 6 and 22) and
(weekday(dtColumn, 1) between 2 and 4)