it-swarm.com.de

So erhalten Sie Daten der letzten 7 Tage vom aktuellen Datum bis zum letzten Tag in SQL Server

Hallo, ich lade die Tabelle A-Daten vom SQL-Server in den MySQL-Server mit pentaho Beim Laden von Daten muss ich nur die letzten 7 Tage Daten vom SQL-Server erhalten. Eine Tabelle in mysqlIn In mysql ist der Datentyp "create_on" der Zeitstempel

Hier habe ich die Abfrage verwendet, aber ich bekomme nur 5 Tage Daten
Bitte helfen Sie mir in dieser Ausgabe

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
24
SRI

Versuchen Sie etwas wie:

 SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on
 FROM News 
 WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
19
SMA
select id,    
NewsHeadline as news_headline,    
NewsText as news_text,    
state,    
CreatedDate as created_on    
from News    
WHERE CreatedDate>=DATEADD(DAY,-7,GETDATE())

Ich glaube nicht, dass Sie in den letzten sieben Tagen Daten für jeden einzelnen Tag haben. Tage, für die keine Daten vorliegen, werden offensichtlich nicht angezeigt.

Probieren Sie dies aus und bestätigen Sie, dass Sie für jeden Tag Daten für die letzten 7 Tage haben

SELECT DISTINCT CreatedDate
FROM News 
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
ORDER BY CreatedDate

BEARBEITEN - Aus Ihrem Kommentar übernommen 

ich habe 19. Dezember -1 Zeilendaten, 18. -2 Zeilen, 17. -3 Zeilen, 16. -3 Reihen, 15. -3 Zeilen, 12. -2 Reihen, 11. -4 Reihen, 9. -1 Reihe, 8. -1 Reihe

Sie haben keine Daten für alle Tage. Das ist dein Problem und nicht die Abfrage. Wenn Sie die Abfrage heute ausführen (22.), erhalten Sie nur Daten für 19., 18., 17., 16. und 15.. Sie haben keine Daten für 20., 21. und 22..

BEARBEITEN - Um Daten für die letzten 7 Tage abzurufen, bei denen Daten verfügbar sind, können Sie es versuchen

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)
5
Raj

Hoffe, das wird helfen,

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
1
Raji

DATEADD- und GETDATE-Funktionen funktionieren möglicherweise nicht in der MySQL-Datenbank. Wenn Sie also mit der MySQL-Datenbank arbeiten, kann Ihnen der folgende Befehl helfen.

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

Ich hoffe es hilft dir

1
Mukesh Chauhan

Wenn Sie dies mit Pentaho DI tun möchten, können Sie " Modified JavaScript " Step verwenden und die folgende Funktion schreiben:

dateAdd(d1, "d", -7);  // d1 is the current date and "d" is the date identifier

Überprüfen Sie das Bild unten: [Vorausgesetzt, das aktuelle Datum ist der 22. Dezember 2014]

enter image description here

Ich hoffe es hilft :)

0
Rishu