簡體   English   中英

如何格式化SQLServer DateTime(mm / dd / yyy HH:MM:SS AM / PM)

[英]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的答案,因為將日期作為字符串存儲在數據庫中是一個非常糟糕的主意,並且肯定會引起問題。 我只是詳細說明了如何進行轉換,以防您不得不處理別人的代碼。

如上所述,保存數據時無需設置格式,而是在輸出時進行控制。 這是一些使用CONVERT函數更改輸出格式的簡單方法

暫無
暫無

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

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