こんにちは、データをロードするときにpentahoを使用してテーブルAのデータをSQLサーバーからMySQLにロードしていますSQLサーバーから最後の7日間のデータのみを取得する必要がありますタイムスタンプ
ここで私は以下のクエリを使用しましたが、5日間のデータしか取得していません
この問題で私を助けてください
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
次のようなものを試してください:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on
FROM News
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
過去7日間の毎日のデータがあるとは思わない。データが存在しない日は明らかに表示されません。
これを試して、過去7日間の各日のデータがあることを確認してください
SELECT DISTINCT CreatedDate
FROM News
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
ORDER BY CreatedDate
編集-コメントからコピー
私は12月19日-1行のデータ、18-2行、17-3行、16-3行、15-3行、12-2行、11-4行、9-1行、8-1行を持っています
すべての日のデータがありません。それはあなたの問題であり、クエリではありません。今日-22日-クエリを実行すると、19日、18日、17日、16日、15日のデータのみが取得されます。 20日、21日、22日のデータはありません。
編集-データが利用可能な過去7日間のデータを取得するには、試してください
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)
select id,
NewsHeadline as news_headline,
NewsText as news_text,
state,
CreatedDate as created_on
from News
WHERE CreatedDate>=DATEADD(DAY,-7,GETDATE())
これが役立つことを願って、
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
DATEADDおよびGETDATE関数は、MySQLデータベースでは機能しない場合があります。したがって、MySQLデータベースを使用している場合は、次のコマンドが役立ちます。
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);
私はそれがあなたを助けることを願っています
Pentaho DIを使用してそれを行いたい場合は、「Modified JavaScript」を使用して、以下の関数を記述します。
dateAdd(d1, "d", -7); // d1 is the current date and "d" is the date identifier
以下の画像を確認してください:[現在の日付が2014年12月22日であると仮定]
それが役に立てば幸い :)