关于DateTime.Now有可能异常的问题

不想成为茶叶蛋的鸡蛋 2014-05-27 01:57:39
DateTime.Now 取的是服务器时间
我在插入数据库的时候用的参数插入
INSERT INTO TABLE(CreateTime,@CreateTime), new MySqlParameter("@CreateTime", DateTime.Now)这样的方式

但是客户那边反应过来说出现注册时间不对, 不是全部, 偶尔的一两个, 而且找不到规律

1:服务器时间没人修改
2:数据库字段没人修改

我想问下有什么可能会出现时间跳跃性, eg本来是2014-05-27 00:00:00变成了2014-05-01 12:23:34
我自己是完全没头绪了
...全文
618 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
季雨林 2015-09-23
  • 打赏
  • 举报
回复
我遇到了类似的情况,一直奇怪: 我有个大量的循环(100000次,5分钟内完成),每次都会获取到当前执行时间,Datetime.Now,可是总是偶尔出现10个左右的错误结果,错误特点是,变成了这个月额1号凌晨30分前后。 2015-09-01 00:31:45.000 2015-09-23 14:24:01.177
  • 打赏
  • 举报
回复
既然没有别的解释的话, 谢谢大家, 结贴了
  • 打赏
  • 举报
回复
引用 6 楼 jimil 的回复:
楼主想问的是,时间对不上吧,就是说明明是今天注册的,但数据库里却是昨天的,甚至前天的。 这种情况我没碰到过,从实际使用上来说,now取的是本地服务器时间,它是多少就是多少,不会出现时间混乱的情况,首先,我们来测试一下是不是本地时间的问题,你可以把这步省略掉,直接字段默认值getdate(),如果有出现这种情况,我们就基本上确定是服务器本地时间紊乱造成的,基本上,我是相信now是不会出错的,因为我在论坛上也混得比较久了,写过的项目也比较多了,从来没碰过这种情况。
对, 测试的时候获取的是本地时间, 因为这个不是整个数据库都是这样, 就是运行了很久今天才发现有这么一条数据 我现在加了格式上去, 写了个监视程序在看
  • 打赏
  • 举报
回复
引用 5 楼 diaodiaop 的回复:
首先 你表中的CreateTime应该不是datetime类型的吧 如果是 不存在出现不一致的情况.. 所以 为什么你不把字段修改datetime然后设置默认值getdate() 或者insert xx values (getdate())呢??
是DateTime类型, 我可以修改为getdate() 或者加个格式上去.tostring("yyyy") 但是我是想知道为什么DateTime.Now为什么会出现不一致的情况,我是觉得DateTime.Now这样是没什么问题的
jimil 2014-05-27
  • 打赏
  • 举报
回复
楼主想问的是,时间对不上吧,就是说明明是今天注册的,但数据库里却是昨天的,甚至前天的。 这种情况我没碰到过,从实际使用上来说,now取的是本地服务器时间,它是多少就是多少,不会出现时间混乱的情况,首先,我们来测试一下是不是本地时间的问题,你可以把这步省略掉,直接字段默认值getdate(),如果有出现这种情况,我们就基本上确定是服务器本地时间紊乱造成的,基本上,我是相信now是不会出错的,因为我在论坛上也混得比较久了,写过的项目也比较多了,从来没碰过这种情况。
by_封爱 2014-05-27
  • 打赏
  • 举报
回复
首先 你表中的CreateTime应该不是datetime类型的吧 如果是 不存在出现不一致的情况.. 所以 为什么你不把字段修改datetime然后设置默认值getdate() 或者insert xx values (getdate())呢??
墙角的灰 2014-05-27
  • 打赏
  • 举报
回复
同求,DateTime.Now 本地插入数据就是好的,放到线上就变成了null, 取得是当前时间
淡淡的活着 2014-05-27
  • 打赏
  • 举报
回复
而你说的就如一楼那样 now本来就是取现在的时间 如果不用自己格式掉
淡淡的活着 2014-05-27
  • 打赏
  • 举报
回复
格式不对 直接用这个小时是不会加0的 比如8点不会是08 这样排序就会不对 简易用tostring(“yyyy”)这样来
excute 2014-05-27
  • 打赏
  • 举报
回复
DateTime.Now本来就是2014-05-01 12:23:34这种啊,如果要这种格式:2014-05-27 00:00:00 得转换一下DateTime.Now.ToShortTimeString();或者Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧