now - Cómo obtener los datos de los últimos 7 días de datetime actual a los últimos 7 días en el servidor SQL
obtener hora sql server (6)
Hola, estoy cargando la tabla A datos del servidor sql a mysql usando pentaho al cargar los datos que necesito para obtener solo los últimos 7 días datos del servidor sql una tabla a mysql marca de tiempo
Aquí utilicé la siguiente consulta pero obtengo datos de solo 5 días
Por favor ayúdeme con este problema
select id,
NewsHeadline as news_headline,
NewsText as news_text,
state,
CreatedDate as created_on
from News
WHERE CreatedDate BETWEEN GETDATE()-7 AND GETDATE()
order by createddate DESC
Espero que esto ayude,
select id,
NewsHeadline as news_headline,
NewsText as news_text,
state,
CreatedDate as created_on
from News
WHERE CreatedDate >= cast(dateadd(day, -7, GETDATE()) as date)
and CreatedDate < cast(GETDATE()+1 as date) order by CreatedDate desc
Intenta algo como:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on
FROM News
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
Las funciones DATEADD y GETDATE podrían no funcionar en la base de datos MySQL. así que si está trabajando con la base de datos MySQL, entonces el siguiente comando puede ayudarlo.
select id, NewsHeadline as news_headline,
NewsText as news_text,
state, CreatedDate as created_on
from News
WHERE CreatedDate>= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
Espero que te ayude
No creo que tengas datos de todos los días durante los últimos siete días. Días para los cuales no existen datos, obviamente no se mostrarán.
Intente esto y valide que tiene datos para CADA día durante los últimos 7 días
SELECT DISTINCT CreatedDate
FROM News
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
ORDER BY CreatedDate
EDITAR - Copiado de su comentario
Tengo datos de las filas 19 de diciembre -1, filas 18-2, filas 17-3, filas 16 y 3, filas 15 y 3, filas 12 -2, filas 11 y 4, fila 1, fila 8 y 8
No tienes datos para todos los días. Ese es tu problema y no la consulta. Si ejecuta la consulta hoy, 22, solo obtendrá datos de 19, 18, 17, 16 y 15. No tienes datos para 20, 21 y 22.
EDITAR - Para obtener datos de los últimos 7 días, donde hay datos disponibles, puede probar
select id,
NewsHeadline as news_headline,
NewsText as news_text,
state,
CreatedDate as created_on
from News
WHERE CreatedDate IN (SELECT DISTINCT TOP 7 CreatedDate from News
order by createddate DESC)
Si desea hacerlo utilizando Pentaho DI, puede usar el Paso " JavaScript modificado " y escribir la siguiente función:
dateAdd(d1, "d", -7); // d1 is the current date and "d" is the date identifier
Verifique la imagen a continuación: [Suponiendo que la fecha actual es: 22 de diciembre de 2014]
Espero eso ayude :)
select id,
NewsHeadline as news_headline,
NewsText as news_text,
state,
CreatedDate as created_on
from News
WHERE CreatedDate>=DATEADD(DAY,-7,GETDATE())