将日期时间格式转换为Longdatestring为(M / DD / YYYY h / mm / ss)

时间:2014-01-27 09:05:28

标签: c# datetime

嗨我在数据库中有这样的日期时间格式

1/18/2014 4:14:52 PM (M/DD/YYYY h/mm/ss)

我将其转换为 ToLongDateString

string date = Convert.ToDateTime(myQuizOccurrence.occurred).ToLongDateString();
**result ->** **Sunday, January 12, 2014**

我想再次将结果日期转换回与数据库相同的格式我不知道该怎么做?


编辑

到目前为止,我已经尝试过@matt说使用datetime而不是字符串

DateTime dt2 = (DateTime) myDataGridView.CurrentRow.Cells[3].Value;

我已经检查过它的格式与数据库中的日期时间相同 但是当我尝试在查询中匹配以下代码时

  Global.dbCon.Open();
  string kalimatsql2 = "SELECT * FROM Quiz_Occurrences WHERE Occurred = " +dt2+ " 
                            ORDER BY ID";
  Global.reader = Global.riyeder(kalimatsql2);
  if (Global.reader.HasRows) {
     while (Global.reader.Read()) {
        int idku = Convert.ToInt32(Global.reader.GetValue(0));
        MessageBox.Show(idku.ToString());
     }
  }
  Global.dbCon.Close();<br>

给出错误结果
查询表达式中的语法错误(缺少运算符)'发生= 1/12/2014 4:18:59 PM'
我错过了什么?

3 个答案:

答案 0 :(得分:1)

您要与之互动的绝大多数数据库应该直接接受DateTimeDateTimeOffset类型。从数据库中检索数据时,也不会在将数据发送回数据库时使用字符串。因此,格式无关紧要。

我的猜测是你正在做类似的事情:

DateTime dt = Convert.ToDateTime(mydatareader["MyDateTime"].ToString());

相反,你应该这样做:

DateTime dt = (DateTime) mydatareader["MyDateTime"];

当您将其保存回数据库时,您应该使用parameratized inputs直接使用DateTime。如果您尝试连接字符串以构建SQL语句you're doing it wrong

答案 1 :(得分:1)

  

我在数据库中有这样的日期时间格式

最佳做法是使用DateTimeDateTimeOffset类型存储日期和时间信息。

答案 2 :(得分:1)

要将字符串转换回DataTime,您可以使用:

string str = "Sunday, January 12, 2014";
var dateTime = DateTime.ParseExact(str, "D", CultureInfo.CurrentCulture);

请注意,在将其转换为长日期时会丢失时间部分。