tipo obtener now hora entre ejemplo diferencia dato datepart sql sql-server sql-server-2008-r2 pentaho pentaho-cde

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