2014-02-11 25 views
0

這很奇怪。爲什麼這不起作用? 我很難獲取數據,甚至認爲我有搜索說使用這種格式:yyyy-mm-dd使用DateRange時無法從SQLite檢索數據

tblSalesOrderHeader中的Order_Date是正常的DateTime。我在SQLITE插入操作中像這樣插入:Order_Date = DateTime.Today。

如何在SQL語句中處理Order_Date?

會apprecaite你的幫助。

 
Use the same table SalesOrderHeader 

The problem : 

item(1) is working 

Item(2) is not working using DateRange to retrieve records 
Begin and End dates are converted in this string format : yyyy-mm-dd 

I use this to convert the DateTime: 

private string DateTimeSQLite(DateTime datetime) 
     { 
      string dateTimeFormat = "{0}-{1}-{2}"; 

      return string.Format(dateTimeFormat, datetime.Year, datetime.Month, datetime.Day); 
     } 




//-- 1 : Working 

var query = db.Query<SalesOrderHeader>("Select * From SalesOrderHeader Where DataEntryComplete ='" + "0'" + " AND Is_SyncToNAV ='0" + "'"); 



//--2 : not working 

var query = db.Query <SalesOrderHeader>("Select * From SalesOrderHeader WHERE Order_Date BETWEEN '" + Begin +"'" + " AND '" + End +"'" + " AND DataEntryComplete ='" + "0'" + " AND Is_SyncToNAV ='0" + "'"); 

+0

[你的意思是'YYYY-MM-DD'而不是'YYYY-MM-dd' ,對吧?](http://stackoverflow.com/questions/8187288/sql-select-between-dates) –

+0

有沒有區別?我真的不知道。我使用我自己的格式轉換器如上。 – MilkBottle

+0

首先,用一個簡單的'ToString'方法替換'DateTimeSQLLite':'datetime.ToString(「yyyy-MM-dd」)''結果是'2014-02-15'。錯誤是否持續? –

回答

0

嘗試使用 'DateTime.ToShortDateString()' 給你拿在YYYY-MM-DD格式的日期字符串

+0

M.Mimpen的格式是正確的,我相信你是一樣的。我的問題是時間部分(00:00:00)。因爲你的方法不會以這種方式返回yyyy-MM-dd 00:00:00。我的問題是如果我添加這個時間部分,這是否是正確的方式。 – MilkBottle

+0

您是否可以在執行查詢時更改'Order_Date'的格式,如下所示。 「select * from salesorderheader where order_date.toshortdatestring()between begin.toshortdatestring()and end.toshortdatestring() – stackamar

+0

您必須更改所有日期時間對象的格式,同時將它們執行爲通用格式,以便所有日期時間對象都處於相同的格式。 – stackamar