簡體   English   中英

從ASP.NET將Datetime.now插入SQL Server

[英]Insert Datetime.now from asp.net into sql server

我正在嘗試將'DateTime.Now'插入日期時間的sql列類型中,但是在sql表中完成插入后,日期就可以了! (exp:2015-02-11),但是時間存儲為00:00:00 !!! 我嘗試了許多替代者。 這是我的代碼:

sqlComm.Parameters.Add("@join_date", SqlDbType.Date).Value = DateTime.Now.ToString("yyyy-MM-dd h:m:s");

我想念什么???

您正在指定DateSqlDbType沒有時間。 因此,當驅動程序將參數值轉換為所需的類型時,它將刪除時間部分。

沒有明顯的原因DateTime.Now轉換為字符串...並以一種使用奇數和有損時間格式( h:m:s ,沒有AM / PM指示符)的方式進行操作。 如果你真的想轉換為字符串,這將是更好地使用HH:mm:ss的時間指定。

這行:

sqlComm.Parameters.Add("@join_date", SqlDbType.Date).Value = DateTime.Now.ToString("yyyy-MM-dd h:m:s");

應該:

sqlComm.Parameters.Add("@join_date", SqlDbType.DateTime).Value = DateTime.Now;

喬恩(Jon)的回答很好,但是您也可以像下面這樣使事情變得簡單:

sqlComm.Parameters.AddWithValue("@join_date", DateTime.Now);

它將根據值的類型自動使用正確的數據類型。

另外-您說您是從ASP.Net調用此功能的。 在Web應用程序中, DateTime.Now通常是不合適的-因為它使用服務器的時區,並且它不保留任何偏移量信息,因此在夏令時回退過渡期間可能不明確。 我建議將基於UTC的值存儲在數據庫中( DateTime.UtcNow )。

如果您認為服務器的本地時區與您的用例相關,請考慮將數據庫列切換為datetimeoffset類型並使用DateTimeOffset.Now 這樣可以避免DST過渡的問題。

另請參閱: 針對DateTime.Now的案例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM