top sintaxis percent learn last how ejemplos bottom sql sql-server-2008 keyword smalldatetime

sql - sintaxis - ¿Cómo seleccionar datos de 30 días?



sql server select top percent (3)

Tengo una consulta:

SELECT name FROM ( SELECT name FROM Hist_answer WHERE id_city=''34324'' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) UNION ALL SELECT name FROM Hist_internet WHERE id_city=''34324'' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) ) x GROUP BY name ORDER BY name

Pero DATE_SUB es una función de MySQL y necesito una función para MsSQL 2008

¿Dime cómo seleccionar datos de 30 días con MsSQL 2008?

PD: el tipo de datos de datetime es smalldatetime


Deberías estar usando DATEADD es el servidor Sql así que si pruebas este simple, verás el efecto

Select DATEADD(Month, -1, getdate())

Resultado

2013-04-20 14:08:07.177

en tu caso prueba esta consulta

SELECT name FROM ( SELECT name FROM Hist_answer WHERE id_city=''34324'' AND datetime >= DATEADD(month,-1,GETDATE()) UNION ALL SELECT name FROM Hist_internet WHERE id_city=''34324'' AND datetime >= DATEADD(month,-1,GETDATE()) ) x GROUP BY name ORDER BY name


Para aquellos que no pudieron hacer que DATEADD funcione, intente esto en su lugar: (AHORA () - INTERVALO 1 MES)


Prueba esto: al usar esto puedes seleccionar la fecha por los últimos 30 días,

SELECT DATEADD(DAY,-30,GETDATE())