Devo cercare tra date e orari.Ricerca tra date e orari in SQL Server 2008
Ad esempio, tra il date: 30/02/2007, time: 10:32
e date: 21/06/2008, time: 14:19
Qual è la più semplice query per questo?
Grazie in anticipo.
Devo cercare tra date e orari.Ricerca tra date e orari in SQL Server 2008
Ad esempio, tra il date: 30/02/2007, time: 10:32
e date: 21/06/2008, time: 14:19
Qual è la più semplice query per questo?
Grazie in anticipo.
si dovrebbe guardare i formati di tempo data disponibili in SQL Server: http://msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
è quello che si dovrebbe usare:
prova:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
nella query precedente le stringhe saranno convertite in d tipo di dati a tempo se DateCreated
è una colonna datetime. e la query funzionerà.
è possibile creare le variabili locali di tipo di dati datetime e utilizzare una query come:
DECLARE @StartDate datetime, @EndDate datetime
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<[email protected]
Mi piace usare <, < =,> = o> perché permette una maggiore flessibilità rispetto BETWEEN
e ti costringe a pensa di includere gli endpoint o meno.
Un'altra cosa da considerare è ottenere tutti i dati da un giorno completo:
DECLARE @StartDate datetime, @EndDate datetime
--set the days you want
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
--remove the time
SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
--get everything on '2007-02-30' up to the end of the day on '2008-06-21'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<@EndDate+1
Prova questo:
SELECT
*
FROM
Records
WHERE
DateCreated BETWEEN @Date1 AND @Date2
ringraziamento di per l'aiuto, ma come scrivere data e ora? data: 30/02/2007, ora: 10:32 e data: 21/06/2008, ora: 14:19 – Gold
Nell'esempio precedente le variabili @ Date1 e @ Date2 sono di tipo datetime Ciò significa che è possibile assegnare data e ora a loro in questo modo: 'DECLARE @ Data1 datetime SET @ Date1 = '2010-03-18 10: 52'' –