将 MySQL DATETIME 转换为 System.DateTime
I am using a MySQL database with DbLinq, but there is an exception being thrown:
"Cannot convert mysql datetime to
system.datetime"
How can I resolve this issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
检查数据库中是否有任何零日期,即'0000-00-00'之类的日期;
这可能是错误的原因。
Check for any zero date means date like '0000-00-00' in database;
this could be the cause of error.
将
MySqlDateTime
转换为aDateTime
或使用mySqlDateTime.GetDateTime()
。Either cast the
MySqlDateTime
as aDateTime
or usemySqlDateTime.GetDateTime()
.那么,如果您有一个包含 MySql
DateTime
值的结果集,则可以使用ConvertAll
方法以及使用DateTime.Parse
创建System.DateTime
值。下面是一个示例,其中“结果”是包含 MySQL 日期时间值的 dblinq 查询的结果:
这是您要查找的吗?
Well, if you have a result set containing MySql
DateTime
values, you could use theConvertAll
method along with a delegate usingDateTime.Parse
to create a collection ofSystem.DateTime
values.Here's an example, where "results" is the result of your dblinq query containing MySQL datetime values:
Is this what you're looking for?
我将 gridview 中的一列从 asp:BoundField 移动到 asp:TemplateField,因此必须显式显示 MySQL 数据库中的日期。通过反思,我发现该集合将日期字段键入为 MySqlDateTime 而不是 system.DateTime。
我将 import MySql.Data.Types 语句添加到后面的代码中,并在 gridview 上下文中的标签中添加了以下 Eval 语句。
Text='<%# CType(Eval("Subscribed_Date"), MySql.Data.Types.MySqlDateTime).ToString%>'
输出格式:02/23/2011
希望有帮助!
I was moving a column in my gridview from asp:BoundField to asp:TemplateField so had to display a date from a MySQL database explicitly. I found, through reflection, that the collection typed the date fields as MySqlDateTime and not system.DateTime.
I added the import MySql.Data.Types statement to the code behind and the following Eval statement within a label in the context of a gridview.
Text='<%# CType(Eval("Submitted_Date"), MySql.Data.Types.MySqlDateTime).ToString%>'
output format: 02/23/2011
Hope that helps!