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

标签 c# sql sql-server-2008

win form保存的数据,输入的日期格式为(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 不以任何字符串格式存储 DateTime - 它存储为 8 字节数值。

各种设置(语言、日期格式)只会影响 DateTime 在 SQL Server Management Studio 中的显示方式 - 或者当您尝试将字符串转换为 时它的解析方式>日期时间

SQL Server 支持多种格式 - 请参阅 MSDN Books Online on CAST and CONVERT .

实际上,这与更改 SQL Server 中的日期格式无关 - 它与如何格式化和显示您从 SQL Server 检索的日期时间有关。使用适当的 T-SQL CONVERT 参数,或在 C# 前端代码中格式化 DateTime

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

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

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

这将为您提供 dd/mm/yyyy(英国/法国)格式的日期。如果您需要不同的格式 - 使用不同的样式(除 103 以外的其他数字)。那些款式are very well documented here .

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

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

获取您需要的值。注意:要格式化,请使用MM(大写!)因为mm 会格式化分钟您的 DateTime 而不是。

关于c# - 我们如何更改 SQL Server(2008) 数据库的日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18670639/

相关文章:

c# - WPF 事件 : BitmapImage PropertyChanged: "Calling Thread Cannot access"

c# - 拒绝访问 Kiosk 程序进程

c# - 如何进行转换 SQL 内部连接查询与 Entity Framework

sql - 正则表达式匹配除特定给定字符串之外的任何内容(包括空字符串)

sql - SQL Server 中的 IN 与 OR 运算符

python - 无法将 pyODBC 与 SQL Server 2008 Express R2 连接

c# - 如何使用 Get() 和 Set() 方法最小化一个类

sql - PostgreSQL:如何获取没有主地址的所有记录(用户)?

c# - SelectCommand.Connection 属性尚未初始化。数据库

sql-server-2008 - MissingEndpointException:尝试连接到报表服务器失败。