![](/img/trans.png)
[英]how to convert MM/dd/YYYY hh:mm:ss AM to YYYY-MM-dd datetime format by linq?
[英]How to format SQLServer DateTime (mm/dd/yyy HH:MM:SS AM/PM)
請幫助。
如何在SQLServer 2005中格式化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();
}
}
無需格式化-SQL應該能夠按原樣插入日期。
SQL知道如何保存日期。 格式化應在用戶界面中完成。
現在,如果您將日期存儲在varchar
字段中,那就是另一回事了,我只想回答一下:不要。
如果確實需要,則可以在.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的答案,因為將日期作為字符串存儲在數據庫中是一個非常糟糕的主意,並且肯定會引起問題。 我只是詳細說明了如何進行轉換,以防您不得不處理別人的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.