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())