C# 如何在sql server中以dd/MM/yyyy格式存储日期?

C# 如何在sql server中以dd/MM/yyyy格式存储日期?,c#,sql-server,date,C#,Sql Server,Date,这是我的密码 DateTime datetime = DateTime.Today; labelDate.Text = datetime.ToString("'dd'/'MM'/'yyyy"); DateTime d = datetime; SqlConnection con = new SqlConnection(); con.ConnectionString= @"data source = desktop-u9dun78\sqlexpress;database = Al_Yousuf_D

这是我的密码

DateTime datetime = DateTime.Today;
labelDate.Text = datetime.ToString("'dd'/'MM'/'yyyy");
DateTime d = datetime;

SqlConnection con = new SqlConnection();
con.ConnectionString= @"data source = desktop-u9dun78\sqlexpress;database = Al_Yousuf_Db;integrated security=SSPI";
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO StockEntryTB(Date,Product_No,Product_Name,Quantity,Original_Cost,Selling_Cost)VALUES('" + d + "'," + textBoxProdNo.Text + ",'" + textBoxProdName.Text + "','" + textBoxQuantity.Text + "'," + textBoxOriginalCost.Text + "," + textBoxSellingCost.Text + ")", con);
cmd.ExecuteNonQuery();
con.Close();
但是它以
yyyy/dd/MM
格式存储日期。比如说
2016-06-11
(2016/6/11),但我想像
11/06/2016
一样存储

住手! 您的SQL Server中有一个类型。决不能将
日期时间
值存储为
字符串

在SQL Server中,
datetime
值存储为二进制。您可以看到SQL Server向您展示的一些格式。但是在引擎盖下,它没有任何隐含的格式

这就是为什么,您应该将DateTime作为DateTime插入数据库,并从数据库中获取DateTime值。“格式”概念仅在您使用该日期时间值的文本(字符串)表示时适用

相反

  • 日期
    列定义为或类型
  • 直接用a而不是字符串插入
    DateTime
还可以使用自动处理连接和命令,而不是手动调用
Close
dispose
方法


作为最后一件事,
Date
可能是未来SQL Server版本中的一个选项,您可能希望将其用作
[Date]
。但作为更好的解决方案,请将列名更改为非保留字。

您可以在从数据库检索后格式化日期。 C.:。格式(“{0:d/M/yyyy HH:mm:ss}”,dt);
其中dt是日期时间类型变量,其中包含要格式化的日期。

您不应尝试以特定格式存储日期。数据库具有要使用的日期类型,然后在UI中显示您想要的格式。1)考虑在表定义上使用DATETIME类型而不是VARCHARE()类型。2) 我建议对数据库调用使用存储过程,而不是使用用户输入生成的字符串。3) 如果您需要特定格式,我建议在显示数据时进行格式化。谢谢,请告诉我如何以所需格式存储数据code@John同样,您不应该以任何格式存储它们。只需将它们存储为
DateTime
。“格式”概念仅在获得其字符串表示形式时适用。