2017-01-30 4 views
0

私のページに過去40日間のデータを表示する必要があります。 次のステートメントを使用してクエリ実行している場合: ... and CreateDate > getdate() - 40 ... を私はCREATEDATEのために正しいデータを取得:2017年1月11日14:51:43.150Datatableは、日付列とデータベースクエリで異なるデータを表示します

私はデータを取得していますJavaScriptを使用して同じデータを取得しようとしています2016年12月21日13時42分56秒の異なる日付で:27:25.877少ないしである

for (var i = 0; i < MyObject.length; i++) { 
    if (MyObject[i][0].toString("MM/dd/yyyy HH:mm:ss") > Date.today().add(-40).days().toString("MM/dd/yyyy HH:mm:ss")) { 
      aData[aData.length] = MyObject[i]; 
    } 
} 

私はSQLでselect getdate() - 40を実行すると、私は2016年12月21日18を得る、ということに気づきました私のCreateDate。だからこそ、私は2017-01-11 14:51:43.150をSQLで取得します。

しかし、JavaScriptを使用して同じレコードを取得しようとしたとき:

Date.today().add(-40).days().toString("MM/dd/yyyy HH:mm:ss")、この文が生成する:「2016年12月21日0時00分○○秒」の日付を。

私のifロジックが正しいデータを比較しない理由です。 2016-12-21 13:42:56.123を2016-12-21 18:27:25.877と比較する代わりに、 は2016-12-21 13:42:56.123と12/21/2016 00:00:00を比較します。

これにより、左の値が正しい値より大きくなるため、対応するオブジェクトが表示されます。

私は右手値をフォーマットする必要があり、その日付は2016年12月21日18である:27:25.877

どのように私は、と比較するため、正しいデータを取得するためにDate.today().add(-40).days().toString("MM/dd/yyyy HH:mm:ss")をフォーマットすることができますか?

+0

しかし、私は(のgetDateその後、大きい日付を取得する必要があります - 40.そして日:2017年1月11日14:51:43.150は、まさにのgetDateの間にあります() - 40およびgetDate() – gene

答えて

0

問題を修正しました。 問題は実際の日付ではなく文字列値を比較することにあると思います。ここで

ソリューションです)

var createDate = new Date(MerchantNotes[i][0]); 
var forty = new Date(); 
forty.setDate(forty.getDate() - 40); 

if (createDate > forty) 
{ 
    //the logic goes here 
} 
関連する問題