2011-04-06 37 views
0

奇怪的問題。我有3個名額/列在那裏我這樣做...LINQ to SQL設置日期但不是時間...有時

var o = db.Orders.Where(a => a.OrderID == orderID).First(); 
o.dateOne = DateTime.Now; 
db.SubmitChanges(); 

在這裏一切都很好...在DB值是說2011-04-01 12時12分33秒

在其他兩個地方我做...

o.dateTwo = DateTime.Now; 
o.dateThree = DateTime.Now; 
db.SubmitChanges(); 

這兩個對象得到正確的日期相同,但在數據庫中它說2011-04-01 00:00:00

我試圖在SubmitChanges之前顯示對象的值。在這一點上,該值與時間,例如2011-04-01 十二時12分33秒

其他信息:DB是MS SQL,所有列是日期/時間,.NET 3.5 ...

任何經歷過相同行爲的人?

+1

怎麼樣的列(dateTwo,dateThree)的SQL數據類型他們smalldatetime? – 2011-04-06 14:05:43

回答

0

您可以捕獲使用SQL Profiler發送到SQL Server的SQL語句嗎?然後您就可以知道截斷髮生的位置。

exec sp_executesql' 
UPDATE [MyTable] SET [dateTwo] = @p0 
WHERE ...', 
...--and then defining the value of your datetime 
@p0 = '2011-04-01 00:00:00' 
+0

是的 - 發出一個sql命令對我來說可能更有效。只是想知道是否有這個知道issus,或簡單的修復。謝謝 – Steen 2011-04-06 21:36:04

+0

@Steen:我的意思是:嘗試捕獲LINQ To SQL正確發送到SQL Server的內容。這將有助於確定問題所在。如果時間精度被髮送,那麼這是一個SQL Server問題。如果不是,那麼這是一個C#/ LINQ To SQL問題。 – 2011-04-06 23:42:48

相關問題