【问题标题】:Converting data entered by user to date将用户输入的数据转换为日期
【发布时间】:2014-03-05 15:50:04
【问题描述】:

我正在尝试将“日期”类型的数据从表单上的文本框中插入到数据库中。

我想确保用户输入的数据以'dd/mm/yyyy' 格式存储在数据库中。我在数据库中有一个“日期”类型的列,但是当我输入上述格式的值时,出现异常(例如:无法将 varchar 隐式转换为日期类型)。

请问如何将输入的日期转换为“dd/mm/yyyy”格式。我尝试使用CONVERT((varchar,getdate(),103) AS [DD/MM/YYYY]),但我不知道在我的代码中放置它的位置。我是c#和sql server的新手,请帮忙!!

【问题讨论】:

标签: c# asp.net sql-server date


【解决方案1】:

最好不要在 SQL 中转换日期,而是将其作为日期传回,然后在 C# 中您可以根据需要对其进行结构化

myDate.ToString("dd/mm/yyyy")

【讨论】:

  • 谢谢> 请您进一步解释一下吗?
【解决方案2】:

使用parameterised queries:

DateTime dt;
dt = DateTime.ParseExact(TextBox1.Text,
        "dd/MM/yyyy",CultureInfo.InvariantCulture);

SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "INSERT INTO [TABLENAME](DateCol) VALUES(@DateValue)";
SqlCommand cmd=new SqlCommand(query,con);
cmd.Parameters.AddWithValue("@DateValue",dt);
con.Open(); 
cmd.ExecuteNonQuery();

编辑:来自您的 cmets:

我希望日期也以相同的“dd/MM/yyyy”格式显示 在数据库中

您无法控制底层数据库如何显示或管理您在数据库中的日期,但如果您想在读取数据库时以dd/MM/yyyy 格式获取日期,您可以尝试以下操作:

SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "SELECT [DateCol] FROM TABLENAME]";
SqlCommand cmd=new SqlCommand(query,con);

con.Open(); 
SqlReader reader = cmd.ExecuteReader();
while(reader.Read())
{
   DateTime dt= Convert.ToDateTime(reader["DateCol"].ToString());
   string mydateString = dt.ToString("dd/MM/yyyy");
}
con.Close();

【讨论】:

  • 谢谢@Sudhakar!这可行,但我希望日期也以相同的“dd/MM/yyyy”格式显示在数据库中,请您解释一下它是如何工作的?谢谢!
猜你喜欢
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
相关资源
最近更新 更多