当前位置:编程学习 > C#/ASP.NET >>

DateTime.Now 赋值给 DateTime 的变量,产生的sql语句时间格式突然变成7位毫秒了

首先,我程序中有很多地方都是用的DateTime.Now 赋值给 DateTime 变量如下
entity.CreateDate =DateTime.Now;

之前完全正常,sql 产生的 时间 2012-09-14 09:19:07.110

但是现在产生的sql竟然产生了 7位 毫秒  2012-09-14 09:19:07.1100000  结果sql执行失败

现在所有用 DateTime.Now 的地方,产生的sql就是 7位 毫秒,所以都失败,在同事机器也试过了,结论是没获取代码之前时正常的产生3位,获取之后 产生7位 ! 但是更改的都是代码,怎么会对这个格式有影响的,再说也不知道是哪个改动影响了它


环境:xp系统  ,framework 4.0(之前也是),sqlserver 2005 之前也是,  字段的数据类型,变量的数据类型检查了没变过都是 datetime的

我想知道的:1--是什么原因导致了这种情况?2--在哪里有配置的关系吗还是和我当前的系统设置有关系(没设置啥啊)?
求助,谢谢 --------------------编程问答-------------------- 看一上控制面板区域时间设计。

一般都3位的啊。能精确到7位? --------------------编程问答--------------------
引用 1 楼  的回复:
看一上控制面板区域时间设计。

一般都3位的啊。能精确到7位?

你好,控制面板中的时间格式 H:mm:ss ,没问题啊,关键是 同事的机器也产生7 位了,哪里的问题呢。。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 原因不清楚,不过你可以在入库之前将时间格式化一下
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");


以字符串的形式提交入库,本身SQL的时间类型就可以接受字符串,应该不会出现问题 --------------------编程问答--------------------
引用 4 楼  的回复:
原因不清楚,不过你可以在入库之前将时间格式化一下
C# code
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");


以字符串的形式提交入库,本身SQL的时间类型就可以接受字符串,应该不会出现问题


首先,我程序中有很多地方都是用的DateTime.Now 赋值给 DateTime 变量

所以我觉得不应该使用这种方式去修改,谢谢
--------------------编程问答--------------------
引用 5 楼  的回复:
引用 4 楼  的回复:

原因不清楚,不过你可以在入库之前将时间格式化一下
C# code
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");


以字符串的形式提交入库,本身SQL的时间类型就可以接受字符串,应该不会出现问题


首先,我程序中有很多地方都是用的DateTime.Now 赋值给 D……



   这觉得还是你的项目哪个地方进行修改了,或是别人更改了你不知道,你可以搜索一下,
              DateTime dt = DateTime.Now;
            string time1 = dt.ToString("yyyy-MM-dd hh:mm:ss fff");
            string time = dt.ToString("yyyy-MM-dd hh:mm:ss fffffff"); --------------------编程问答--------------------
引用 5 楼  的回复:
引用 4 楼  的回复:

原因不清楚,不过你可以在入库之前将时间格式化一下
C# code
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");


以字符串的形式提交入库,本身SQL的时间类型就可以接受字符串,应该不会出现问题




首先,我程序中有很多地方都是用的DateTime.Now 赋值给 D……




  我觉得还是你的项目做修改造成的,或许别人更改的你不知道,你可以搜索一下
              DateTime dt = DateTime.Now;
            string time1 = dt.ToString("yyyy-MM-dd hh:mm:ss fff");
            string time = dt.ToString("yyyy-MM-dd hh:mm:ss fffffff"); --------------------编程问答--------------------               我觉得还是你的项目做修改造成的,或许别人更改的你不知道,你可以搜索一下
              DateTime dt = DateTime.Now;
            string time1 = dt.ToString("yyyy-MM-dd hh:mm:ss fff");
            string time = dt.ToString("yyyy-MM-dd hh:mm:ss fffffff"); --------------------编程问答-------------------- 要么你格式化一下那个日期的格式就可以了 --------------------编程问答-------------------- 要么你格式化一下那个日期的格式就可以了 --------------------编程问答-------------------- 如果是网站,那么你需要做的就是保证服务器上本地化日期格式的正确性就可以了,以便能够入库成功

如果是C/S架构的,需要安装在客户端的,我想你并不能保证所有用户本地化日期的格式,所以就需要入库前对日期统一格式化

昨天也是有人提出如此的问题,不过他的本地化日期格式是 2012‎年‎9‎月‎12‎日 ‎星期三 11:02:23 
这种,很明显不能正常的添加入库,因此我认为如果你不能保证入库时候日期的正确性,最好统一一下格式后在入库 --------------------编程问答-------------------- 没有人修改过与 DateTime格式相关的地方!并且我是给 datetime的变量赋值啊! 原因呢原因呢?郁闷啊 --------------------编程问答-------------------- 再等等。。。。。。。。。。。。 --------------------编程问答--------------------
引用 11 楼  的回复:
如果是网站,那么你需要做的就是保证服务器上本地化日期格式的正确性就可以了,以便能够入库成功

如果是C/S架构的,需要安装在客户端的,我想你并不能保证所有用户本地化日期的格式,所以就需要入库前对日期统一格式化

昨天也是有人提出如此的问题,不过他的本地化日期格式是 2012‎年‎9‎月‎12‎日 ‎星期三 11:02:23 
这种,很明显不能正常的添加入库,因此我认为如果你不能保证入库……


       嗯,我觉得还有有地方设置了,
       DateTime dt = DateTime.Now;
            string time1 = dt.ToString("yyyy-MM-dd hh:mm:ss fff");
            string time = dt.ToString("yyyy-MM-dd hh:mm:ss fffffff");
   csdn现在好像有Bug,回复了内容不显示。 --------------------编程问答--------------------  = DateTime.Now.Date.ToShortDateString(); --------------------编程问答-------------------- 仍然然没有找到原因,但发布到 服务器上就没问题了,之前在本机时可以的,实在是不知道原因,改代码和格式我觉得是不正确的,因为之前都这么用的正常!到底什么原因呢? --------------------编程问答-------------------- 我今天也遇到相同的问题了。郁闷至极啊,之前还好好的代码,今天忽然发现操作数据库异常了。
错误提示是:从数据类型 varchar 转换为 datetime 时出错。

我估计是不是更新了framework 4的原因啊。我机器其他什么都没有动过。

有哪位高手知道原因的,给指点一下呀。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,