我的日期格式爲2013-08-05 12:45:56
。但我想在數據庫中以格式2013-08-05 00:00:00
存儲。sql server 2008中的日期格式
我想要的是,我不想在數據庫中節省時間。
我使用:
cmd.Parameters.AddWithValue("@VoucherDate", VoucherDate.Date);
但它畢竟是節省時間。有什麼建議麼?
我的日期格式爲2013-08-05 12:45:56
。但我想在數據庫中以格式2013-08-05 00:00:00
存儲。sql server 2008中的日期格式
我想要的是,我不想在數據庫中節省時間。
我使用:
cmd.Parameters.AddWithValue("@VoucherDate", VoucherDate.Date);
但它畢竟是節省時間。有什麼建議麼?
嘗試使用:
VoucherDate.Date.ToShortDateString();
使用日期列類型,而不是日期時間
有沒有,我實事求是地只保存日期的任何其他方式? –
如果您使用SQL 2008或以上,那麼你可以使用Date
數據類型
http://msdn.microsoft.com/en-us/library/bb675168.aspx
如果你想獲得日期零件只在C#,那麼你可以使用Date
屬性,例如
var fullDate = DateTime.Now;
var dateOnly = fullDate.Date;
但是,如果你只是希望存儲日期部分,然後再考慮改變SQL數據類型。
即使你有日期,或日期時間列在數據庫中,當你讀數據返回到您的程序,您可以通過給正確DATATIME格式字符串格式化顯示日期。
像dt.ToString("yyyy-MM-dd)
,那麼你不會得到任何時間,輸出
有一次,我也曾經有過類似的問題,與此answer的幫助下,我固定它。
你C#
代碼:
cmd.Parameters.AddWithValue("VoucherDate", VoucherDate.Date);
調整你的SQL
查詢類似下面,
DATEADD(dd, 0, DATEDIFF(dd, 0, @VoucherDate))
非常感謝你。這是工作! –
這不是一個最佳解決方案,其原因是因爲日期應該作爲日期進行存儲(實際上是一個3字節的數字)。這個答案將日期轉換爲一個字符串,這個字符串對於所有目的而言都是錯誤的,只是表示。請參閱@christiandev的答案。 –
@MikaelÖstberg你說得對,我剛纔展示了一個快速的解決方案,'ToShortDateString'應該用於演示文稿pourpouse,如你所述 – Daniele