首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从C#到MySQL的DateTime :存储不完整

从C#到MySQL的DateTime :存储不完整
EN

Stack Overflow用户
提问于 2011-04-22 23:19:14
回答 2查看 800关注 0票数 1

我正在使用DateTime对象创建一个监控应用程序。原理是用户每次启动特定的应用程序时,当前的日期和时间都会保存在数据库中。然后,在监控应用程序中,我从DB获取此日期字段并显示它。

当我今天通过测试时,我试着启动应用程序:DateTime.Now is stored (即,在法国文化中,22/04/11 17:09:50 )。当我启动监控应用时,我从数据库中得到的是22/04/11 00:00:00,有什么原因没有保存确切的时间吗?

当然,DB中的列是Date列。

下面是一些代码:

存储日期:

代码语言:javascript
运行
复制
                command = new MySqlCommand(_updateDateCommand, connection);
                command.Parameters.AddWithValue("?Template", app);
                command.Parameters.AddWithValue("?Date", DateTime.Now);
                command.Parameters.AddWithValue("?Id", u.Id);


                if (command.ExecuteNonQuery() != 0) return true;

检索数据:

代码语言:javascript
运行
复制
                object date = reader.GetValue(4);
                if (date == System.DBNull.Value)
                {
                    tempUserApp.DateLastUsed = DateTime.MinValue;
                }
                else
                {
                    tempUserApp.DateLastUsed = (DateTime)date;
                }

我确信问题出在存储过程中,因为在Date字段中使用Toad show me 22/04/11 00:00:00之类的工具可视化数据。

更新命令:

代码语言:javascript
运行
复制
private readonly string _updateDateCommand =
            "UPDATE userapplications " +
            "JOIN template t ON t.Name = ?Template " +
            "SET DateUsed=?Date  WHERE `User Id`=?Id AND `Template Id`=t.Id";

MySQL日期有什么特殊的格式吗?

我碰到了this StackOverflow question,并尝试了所提出的解决方案,它也不起作用

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-22 23:26:03

DB列应该是DateTime,而不是Date。看看Docs

关于日期:

当您只需要日期值而不需要时间部分时,可以使用DATE类型。MySQL以'YYYY-MM-DD‘格式检索和显示日期值。支持的范围是'1000-01-01‘到'9999-12-31’。

关于DATETIME:

当您需要同时包含日期和时间信息的值时,使用DATETIME类型。MySQL以'YYYY-MM-DD HH:MM:SS‘格式检索和显示日期时间值。支持的范围是'1000-01-01 00:00:00‘到'9999-12-31 23:59:59’。

获取像dd/mm/yyyy 00:00:00这样的日期返回值是有误导性的,它只是被工具格式化为默认的日期/日期时间格式。您真正需要的是将DB列设置为DateTime。

票数 2
EN

Stack Overflow用户

发布于 2011-04-22 23:34:26

检查DataBase中的数据类型,在我看来您的字段是日期类型,因此

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5756892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档