繁体   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