2017-01-30 31 views
0

我需要在我的頁面上顯示最近40天的數據。 運行時用下面的語句查詢: ... and CreateDate > getdate() - 40 ... 我得到正確的數據CREATEDATE:2017年1月11日14:51:43.150Datatable顯示Date列的不同數據,然後是數據庫查詢

當嘗試使用javascript我得到的數據,以獲得相同的數據與2016年12月21日13點42分56秒的不同日期:

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:27:25.877這是小於我的CreateDate。這就是爲什麼我在SQL中獲得2017-01-11 14:51:43.150的原因。

然而,試圖讓使用javascript相同的記錄時:

Date.today().add(-40).days().toString("MM/dd/yyyy HH:mm:ss"),此語句產生: 「2016年12月21日00:00:00」 的日期。

這就是爲什麼我的if邏輯不能比較正確的數據。 2016-12-21 13:42:56.123與2016-12-21 18:27:25.877, 相比2016-12-21 13:42:56.123與2016/12/21 00:00:00相比2016-12-21 13:42:56 。

這使左側的值大於右側的值,因此它顯示相應的對象。

我需要格式化右手價值,所以日期是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 
}