我在接受日期參數的d1,d2是c#DateTime類型的sql服務器db上調用存儲過程。我使用的是實體框架這樣做:使用實體框架存儲過程的日期參數
context.Database.ExecuteSqlCommand("myprocedure @p1 @p2",dt1.Date,dt2.Date)
它沒有返回結果,所以我嘗試:
var p0 = new SqlParameter("p0",dt1);
p0.SqlDbType = SqlDbType.Date;
var p1= new SqlParameter("p1", dt2);
p1.SqlDbType = SqlDbType.Date;
context.Database.ExecuteSqlCommand("myprocedure @p1 @p2",p0,p1)
但是,如果我簡單地做:
context.Database.ExecuteSqlCommand("myprocedure @p1, @p2", '1/20/2014', '1/30/2014')
我得到正確的結果。請幫助..在這裏我想起了。
如果你想獲得一個DateTime值的日期部分,調用'.Date'財產。您的代碼實際上會失敗,因爲您使用本地化格式(僅限美國),而不是明確的'yyyy-MM-dd'。 –
@PanagiotisKanavos你可以將格式從MM/dd/YYYY更改爲任何你需要的格式...爲什麼你讓問題更復雜?... lol – cyan
日期沒有格式。它們是二進制值。實際上,不考慮語言環境的多次轉換使事情變得更加複雜。 –