在c#date和sql datetime之间转换的简便方法

Ari*_*MAZ 2 c# sql sql-server datetime

我在c#项目中遇到同样的问题.我尝试将日期时间插入sql表,但在土耳其.日期总是DD.MM.YYYY,C#或SQL有时会尝试像美式方式一样插入MM.DD.YYYY.

我该如何永远解决这个问题?

这是一个示例代码

string selectSql = @"INSERT INTO [RN_VEHICLES_GUEST_INOUT] ([PLAKA],[MY_DATE])  
                     VALUES(@PLAKA,@MY_DATE)

cmd.Parameters.Add("@PLAKA", SqlDbType.VarChar, 50);
cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime);

cmd.Parameters["@PLAKA"].Value = txtPlaka.Text.ToString();
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue.ToString();
Run Code Online (Sandbox Code Playgroud)

这段代码一直工作到今天,它今天崩溃,因为今天是13.07.2013,它试图将其插入为MM.DD.YYYY.yesterdat它是12.07.2012我没有问题,因为它可以转换12个月而不是13.这就是我如何意识到这个问题.

如何确保C#和SQL始终以DD.MM.YYYY格式工作?

Tim*_*ter 9

如果它是DateTime数据库中的字段和DateTimeC#中的变量,为什么要将它转换为a String

而不是

cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime);
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue.ToString();
Run Code Online (Sandbox Code Playgroud)

只是

cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime);
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue;
Run Code Online (Sandbox Code Playgroud)

(假设dateGelisTarihi.EditValue是a Dateime)