从字符串转换日期和/或时间时 转换失败。

antcy_18 2013-12-12 10:40:29
SQL里的数据类型是DATETIME,C#变量类型也是DATETIME。
SqlCommand的Parameters设置
Add("@tm",SqlDbType.DateTime);
Parameters["@tm"].Value = tm();
两者同样是DATETIME类型,唯一的区别是客户端的时间格式里带有星期如:2013/12/10 星期二 10:55:01

这样转换的时候会出错,

如果告诉我要ToString("yyyy-MM-dd HH:mm:ss.fff"); 这个不是我想要的。
...全文
13554 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaolincom 2014-08-10
  • 打赏
  • 举报
回复
我这边也出现了这个问题,同求!
antcy_18 2013-12-13
  • 打赏
  • 举报
回复
antcy_18 2013-12-13
  • 打赏
  • 举报
回复
是我错了,TM>'#tim' 不应该加‘’ 直接TM >@TIM
antcy_18 2013-12-13
  • 打赏
  • 举报
回复
#tim @tim
antcy_18 2013-12-13
  • 打赏
  • 举报
回复
引用 20 楼 xiaobn_cn 的回复:
没有理由的,between能支持,>和<应当就没问题啊,能把SQL放上来看下么?
string cmd ="SELECT TOP 1 * FROM dbXX WHERE ec>0 and TM>'#tim' ORDER BY TM desc"; SqlCommand mycomm = new SqlCommand(cmd); mycomm.Parameters.Add("@tim", SqlDbType.DateTime); mycomm.Parameters["@tim"].Value = DateTime.Now;
xiaobn_cn 2013-12-13
  • 打赏
  • 举报
回复
没有理由的,between能支持,>和<应当就没问题啊,能把SQL放上来看下么?
antcy_18 2013-12-13
  • 打赏
  • 举报
回复
引用 18 楼 xiaobn_cn 的回复:
楼主你的http://bbs.csdn.net/topics/390666515不是已经结贴了吗?是问题没有解决还是同时开了两个贴子?
之前,我也以为用参数设置的方法,可以解决, 当是实际上是没有用的, 除了某些用了between and 时间比较 没有出错,像> = 这样的时间比较,还是报错的。
xiaobn_cn 2013-12-13
  • 打赏
  • 举报
回复
楼主你的http://bbs.csdn.net/topics/390666515不是已经结贴了吗?是问题没有解决还是同时开了两个贴子?
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
引用 5 楼 ghypnus 的回复:
引用 4 楼 antcy_18 的回复:
一定要TOSTRING吗?
不用,你不谢类型,系统会指定跟sql一样的类型,你指定了类型反而限定了,可能你引用的那个类型是错误的,不指定类型,sql,oracle都通用
我也试了,不指定类型的,一样的效果。
  • 打赏
  • 举报
回复
引用 4 楼 antcy_18 的回复:
一定要TOSTRING吗?
不用,你不谢类型,系统会指定跟sql一样的类型,你指定了类型反而限定了,可能你引用的那个类型是错误的,不指定类型,sql,oracle都通用
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
一定要TOSTRING吗?
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
引用 2 楼 ghypnus 的回复:
你好 ! DateTime dd = xxx; SqlParameter sp = new SqlParameter("@tm", dd);
你好。 你这个跟我的有啥区别,我的那个还直接指明了类型。
  • 打赏
  • 举报
回复
你好 ! DateTime dd = xxx; SqlParameter sp = new SqlParameter("@tm", dd);
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
有点,就是在时间比较,用到了 between and 的时候,是没有报错的。 而像>,= 这样的时间比较就会出错。
敌敌畏耶 2013-12-12
  • 打赏
  • 举报
回复
真尼玛的蛋疼···
灬浪子灬 2013-12-12
  • 打赏
  • 举报
回复
闲的蛋疼的人。。。。。
  • 打赏
  • 举报
回复
2013/12/10 星期二 10:55:01 客户那边的格式会有很多种,你先tostring成 yyyy-mm-dd hh:mm:ss 然后再convert.toDateTime() 再当参数传递 就是想个办法把客户改掉的时间 统一成一种格式,并且这种格式 数据库可以接受
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
引用 12 楼 ghypnus 的回复:
我忽然醒悟你的问题,把客户端的电脑的区域和语言设置改一下看看行不行,要么你就tostring
引用 11 楼 antcy_18 的回复:
引用 10 楼 starfd 的回复:
你这个星期二不是标准的日期格式。。。。。你只能传入前对它进行处理,数据库可没有什么本地时间格式,UTC格式之类的
就只能toString?
大哥, 问题就是在这啊。 我不能每次去更改客户电脑的时间格式吧, 引起问题的原因就是客户的电脑有可能更改这个时间格式。
  • 打赏
  • 举报
回复
我忽然醒悟你的问题,把客户端的电脑的区域和语言设置改一下看看行不行,要么你就tostring
引用 11 楼 antcy_18 的回复:
引用 10 楼 starfd 的回复:
你这个星期二不是标准的日期格式。。。。。你只能传入前对它进行处理,数据库可没有什么本地时间格式,UTC格式之类的
就只能toString?
antcy_18 2013-12-12
  • 打赏
  • 举报
回复
引用 10 楼 starfd 的回复:
你这个星期二不是标准的日期格式。。。。。你只能传入前对它进行处理,数据库可没有什么本地时间格式,UTC格式之类的
就只能toString?
加载更多回复(4)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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