2010-03-17 20 views

Respuesta

14

usted debe buscar en los formatos de fecha y hora disponibles en SQL Server: http://msdn.microsoft.com/en-us/library/ms187928.aspx

yyyy-mm-dd hh:mi es lo que debe utilizar:

intento:

SELECT 
    * 
    FROM Records 
    WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19' 

en la consulta anterior las cadenas se convertirán a d atetime data type if DateCreated es una columna de fecha y hora. y la consulta funcionará

puede crear variables locales de tipo de datos de fecha y hora y el uso de una consulta como:

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] 

me gusta usar <, < =,> = o>, ya que permite más flexibilidad que BETWEEN y le obliga a pensar en incluir puntos finales o no.

Otro aspecto a considerar es conseguir todos los datos de un día 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 
5

Prueba esto:

SELECT 
    * 
FROM 
    Records 
WHERE 
    DateCreated BETWEEN @Date1 AND @Date2 
+0

de agradecimiento de la ayuda, pero la forma de escribir la fecha y hora? fecha: 30/02/2007, hora: 10:32 y fecha: 21/06/2008, hora: 14:19 – Gold

+0

En el ejemplo anterior, las variables @ Date1 y @ Date2 son del tipo datetime Esto significa que puede asignar fecha y hora para ellos de esta manera: 'DECLARAR @ Fecha1 datetime SET @ Date1 = '2010-03-18 10: 52'' –

Cuestiones relacionadas