C# 如何更改SQL Server(2008)数据库的日期格式?
对于通过win表单保存的数据,输入日期格式为(dd/mm/yyyy)。数据库以(yyyy-mm-dd)格式显示。如何更改日期格式C# 如何更改SQL Server(2008)数据库的日期格式?,c#,sql,sql-server-2008,C#,Sql,Sql Server 2008,对于通过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 = ne
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!");
}
private void btnAllocate\u单击(对象发送者,事件参数)
{
对于(int i=0;i
date-time piker(dtTmPkr)格式(dd/mm/yyyy)在添加参数之前,尝试在c#中解析date-to-datetime对象
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);
SQL Server不以任何字符串格式存储
DateTime
,而是存储为8字节的数值
各种设置(语言、日期格式)仅影响在SQL Server Management Studio中向您显示日期时间的方式,或者在您尝试将字符串转换为日期时间时如何解析日期时间
SQL Server支持多种格式-请参阅
因此,实际上,这并不是要更改SQL Server中的日期格式,而是要如何格式化并显示从SQL Server检索的日期时间
。使用适当的T-SQLCONVERT
参数,或在C#前端代码中格式化DateTime
更新:如果使用问题中显示的查询将DateTimePicker
中的值插入到SQL Server中,应该没问题-它插入了一个DateTime
参数,这样日期的字符串格式就不会有任何问题
当需要将SQL Server中的日期时间
转换为特定格式时,请使用
SELECT CONVERT(VARCHAR(50), YourDateColumn, 103)
这将以dd/mm/yyyy
(英/法)格式为您提供日期。如果您需要不同的格式,请使用不同的样式(103以外的数字)。那些款式
如果将DateTime
列读回C#并需要格式化,则使用
string formatted = YourDateTime.ToString("dd/MM/yyyy");
以获得所需的值。注意:要格式化月份,请使用
MM
(大写!),因为MM
将格式化您的日期时间
的分钟。您在保存数据或检索数据时遇到问题?请尝试我上面的答案进行保存,并尝试以下链接(yyyy-MM-dd)进行检索是SQL server的本机数据格式。您可以使用此it更改(yyyy/mm/dd到yyyy/dd/mm)更改为任何特定格式。此更改不起作用。。。我想要(dd/mm/yyyy)@Bibhusame error(yyyy/dd/mm)和ur编码在103 plz正确后丢失(右括号)。@Bibhu..@Abhishek Kumar Ashu-查看此MSDN页面,103是dd/mm/yyyy的代码。+1答案最后一个代码块的注释:需要使用CultureInfo.InvariantCulture强制使用/as日期分隔符,否则,它将替换为当前区域性的实际日期分隔符(如果它不同)。