2010-11-13 103 views
0

請幫助。如何格式化SQLServer日期時間(mm/dd/yyy HH:MM:SS AM/PM)

我怎樣才能在2005年的SQLServer格式化DateTime列存儲的格式如下:(MM/DD/YYY HH:MM:SS AM/PM)

下面是我的代碼:

 private void UpdateRecord(string status, int approvalid, DateTime modifiedDate) 
    { 
     SqlConnection conn = new SqlConnection(_strConn); 
     SqlCommand cmd = new SqlCommand(@"UPDATE MyLeaveStatusSP SET LeaveStatus = @LeaveStatus, ModifiedDate = @ModifiedDate WHERE ApprovalID = @ApprovalID;", conn); 
     cmd.Parameters.Add("@LeaveStatus", SqlDbType.NVarChar, 50).Value = status; 
     cmd.Parameters.Add("@ApprovalID", SqlDbType.Int).Value = approvalid; 
     cmd.Parameters.Add("@ModifiedDate", SqlDbType.DateTime).Value = modifiedDate; 
     cmd.Connection = conn; 
     cmd.CommandType = CommandType.Text; 

     try 
     { 
      conn.Open(); 
      cmd.ExecuteNonQuery(); 
     } 
     catch (Exception err) 
     { 
      System.Diagnostics.Debug.WriteLine("ERROR: " + err.Message); 
     } 
     finally 
     { 
      conn.Close(); 
     } 
    } 
+1

你爲什麼需要格式化sql datetime?在顯示時在UI上格式化 – 2010-11-13 16:32:55

+0

SQL Server(和CLR)中的DateTime僅存儲日期和時間的組件,而不是存儲格式。在解析/打印期間,DateTime對象只會被告知特定的格式。你想轉換輸入或輸出的日期? – Moonshield 2010-11-13 16:35:03

回答

5

不需要格式化 - SQL應該能夠按原樣插入日期。

SQL知道如何保存日期;格式應該在UI中完成。

現在,如果您將日期存儲在varchar字段中,那麼情況就不一樣了,我只是簡單回答一下:不。

+0

就像我想的那樣。感謝您的解釋。我只是在顯示之前將其格式化。 – janejanejane 2010-11-14 06:44:34

1

如果你真的需要那麼你可以在.NET中進行轉換並傳遞字符串,或者調用接收日期並將其轉換的存儲過程。因爲它不符合任何預定義的格式日期時間,你必須推出自己的,但是這是平凡的,如果累贅:

select right('0' + cast(datepart(dd, @dt) as varchar(2)), 2) 
+ '/' 
+ right('0' + cast(datepart(mm, @dt) as varchar(2)), 2) 
+ '/' 
+ right(cast(datepart(yyyy, @dt) as varchar(4)), 3) -- are you sure you want yyy and not yyyy? 
+ ' ' 
+ right('0' + cast(datepart(hh, @dt) % 12 as varchar(2)), 2) 
+ ':' 
+ right('0' + cast(datepart(mi, @dt) as varchar(2)), 2) 
+ ':' 
+ right('0' + cast(datepart(ss, @dt) as varchar(2)), 2) 
+ ' ' 
+ (case when datepart(hh, @dt) < 12 then 'AM' else 'PM' end) 

不過,我上投票LittleBobbyTables的回答,如將日期作爲字符串存儲在數據庫中是一個非常糟糕的想法,並且會導致問題。我只是在詳細說明如何處理別人的代碼時如何進行轉換。