我们如何更改SQL Server(2008)数据库的日期格式

本文关键字:数据库 日期 格式 2008 何更改 SQL Server 我们 | 更新日期: 2023-09-27 18:30:34

对于通过win表单保存的数据,输入日期格式为(dd/mm/yyyy)。数据库以 (yyyy-mm-dd) 格式显示。如何更改日期格式?

private void btnAllocate_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dgvDetails.Rows.Count; i++)
            {
                SqlConnection con = new SqlConnection("server=HP-HP; database=Restaurent; user id=sa; password=sql2008");
                SqlCommand cmd = new SqlCommand("INSERT INTO WtrTblAllot (WtrNm,Type,No,currDate) values (@WtrNm,@Type,@No,@currDate)", con);
                cmd.Parameters.AddWithValue("@WtrNm", dgvDetails.Rows[i].Cells[0].Value);
                cmd.Parameters.AddWithValue("@Type", dgvDetails.Rows[i].Cells[1].Value);
                cmd.Parameters.AddWithValue("@No", dgvDetails.Rows[i].Cells[2].Value);
                cmd.Parameters.AddWithValue("@currDate", dtTmPkr.Value);
                con.Open();
                cmd.ExecuteNonQuery();
                cmd = null;
              }
        MessageBox.Show("Added successfully!");
}

日期时间 piker (dtTmPkr) 格式 (dd/mm/yyyy)

我们如何更改SQL Server(2008)数据库的日期格式

SQL Server 不会以任何字符串格式存储DateTime - 它存储为 8 字节的数值。

各种设置(语言、日期格式)仅影响在 SQL Server Management Studio 中向您显示DateTime的方式,或者当您尝试将字符串转换为DateTime时如何分析它。

SQL Server 支持多种格式 - 请参阅 MSDN 联机丛书 CAST 和 CONVERT。

所以实际上,这不是关于更改SQL Server中的日期格式 - 而是关于如何格式化和显示从SQL Server检索的Datetime。使用适当的 T-SQL CONVERT参数,或在 C# 前端代码中设置DateTime格式

更新:如果您使用问题中显示的查询将DateTimePicker中的值插入到 SQL Server,您应该没问题 - 它插入了一个DateTime参数,因此您不会遇到任何问题日期的字符串格式。

当您需要将 SQL Server 中的DATETIME转换为特定格式时 - 使用

SELECT CONVERT(VARCHAR(50), YourDateColumn, 103)

这将为您提供dd/mm/yyyy(英国/法国)格式的日期。如果您需要不同的格式 - 使用不同的样式(103 以外的其他数字)。这些样式在这里有很好的记录

如果将DateTime列读回 C# 中,并且需要对其进行格式化,请使用

string formatted = YourDateTime.ToString("dd/MM/yyyy");

以获取所需的值。注意:要格式化月份,请使用MM(大写!),因为mm会改为格式化DateTime的会议记录

尝试在添加参数之前在 c# 中解析日期到日期时间对象。

DateTime Dt = DateTime.ParseExact(dtTmPkr.Value, "dd/MM/yyyy", CultureInfo.InvariantCulture);
cmd.Parameters.AddWithValue("@currDate", Dt);

使用这个:

SqlCommand cmd = new SqlCommand("INSERT INTO WtrTblAllot (WtrNm,Type,No,currDate) values (@WtrNm,@Type,@No,CONVERT(CHAR(10), @currDate, 103))", con);