【问题标题】:cant insert date to mysql DB from c#无法从 c# 将日期插入 mysql DB
【发布时间】:2011-08-19 15:27:18
【问题描述】:

我正在使用 c sharp 和 mysql。 当我尝试将 DateTime 类型的日期插入数据库中的日期列时,我得到的只是0000-00-00

我正在像这样解析我的 DateTime:sessionDate.ToShortDateString()

但是得到空日期...

请帮忙

【问题讨论】:

  • DB列是Date还是DateTime类型?
  • 您使用的是什么数据库以及如何将日期时间输入数据库,显示一些更具体的代码。
  • 您需要发布更多关于如何进行插入的代码,但是在没有任何上下文的情况下,当目标列是日期时,将日期时间转换为字符串看起来很奇怪
  • 该列属于“日期”类型,插入是通过“插入数据库查询”,我将 sessionDate.ToShortDateString() 字符串发送到日期列
  • eddy - 如果我没有在 c# 中解析我的日期,那么我将通过解析它发送完整的日期时间到 DB,即“8/19/2011 12:00:00 AM”改为“8/19/2011”,但 mySql Date 期待“2001-08-19”......我也尝试使用“YYYY-MM-DD”格式“tostring it”,但后来我得到了来自 DB 的异常

标签: c# mysql datetime format


【解决方案1】:

MySql 使用 yyyy-MM-dd 格式的日期,所以你可以覆盖 DateTime.Now 属性的 toString() 方法。

YourDate= DateTime.Now.ToString("yyyy-MM-dd");

【讨论】:

  • 它不起作用,我得到一个例外:“日期值不正确:第 1 行的列 'sessionDate' 的日期值不正确:'1984'”,我不知道为什么 1984 年在那里......我的日期'm insert 是当前日期...
  • 你能把整个代码贴出来吗。。会看的。你试过用断点来探索价值???
【解决方案2】:

尝试将您的日期时间格式化为 MySQL 可接受的字符串值

String.Format("{0:yyyy-MM-dd}", sessionDate);

【讨论】:

  • 没有工作我从 DB 得到下一个异常:不正确的日期值:第 1 行的列“sessionDate”的“1984”...我不知道为什么 1984 在那里...我插入的日期是当前日期...
  • 我认为我们可能需要更大的代码 sn-p。仅通过查看这些小信息很难判断错误来自何处。你能给出表定义以及你用来尝试在数据库中插入日期的整个代码块吗?
猜你喜欢
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 2016-04-16
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多