首页新闻找找看学习计划

sql server2012字符串转为日期失败

0
[已解决问题] 解决于 2019-10-14 16:33
SET LANGUAGE 简体中文
SELECT
      SUM(Price),
      SUM(Cost),
      SUM(Freight + Freight2)
FROM 
TheOrderList
WHERE
MONTH(OrderTime) = DATEPART(mm, '2018-08-12 12:00:00') 
AND
YEAR(OrderTime) = DATEPART(yy, '2018-08-12 12:00:00')

有些电脑上能能运行,有些电脑上报错,从字符串转换日期和/或时间时,转换失败。

是什么情况

SQL
bgh的主页 bgh | 初学一级 | 园豆:36
提问于:2018-08-20 14:00

报什么错?

dudu 1年前

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

bgh 1年前
< >
分享
最佳答案
1

我感觉是客户端版本或者编码的问题

奖励园豆:5
Grom | 初学一级 |园豆:168 | 2018-08-21 14:37

前几天都不会出现这种情况,昨天突然就出现了...

bgh | 园豆:36 (初学一级) | 2018-08-21 14:41

@bgh: 既然你说数据源是一样的,那基本就是客户端的问题了,在时间字符串外面加一层cast('2018-08-12 12:00:00' as date)试试。

Grom | 园豆:168 (初学一级) | 2018-08-21 14:45

@Grom: 还是报同样的错误..

bgh | 园豆:36 (初学一级) | 2018-08-21 14:48

@bgh: 还是建议先查下转错的数据吧

select * from table where isnull(OrderTime,'')=''

我觉得是month和year出错,因为这个字段和数据可能非法格式

Grom | 园豆:168 (初学一级) | 2018-08-21 14:57
其他回答(2)
0

碰到这种情况,我们公司一般就把报错的电脑扔了。

毕竟,扔人是违法劳动法的。

爱编程的大叔 | 园豆:29784 (高人七级) | 2018-08-20 14:51

....

支持(0) 反对(0) bgh | 园豆:36 (初学一级) | 2018-08-20 14:52
0

是不是有时间为空的数据?

徒然喜欢你 | 园豆:1599 (小虾三级) | 2018-08-20 15:53

没有,同样的数据,一些电脑可以,一些电脑不可以

支持(0) 反对(0) bgh | 园豆:36 (初学一级) | 2018-08-20 15:54

@bgh: 电脑扔了

支持(0) 反对(0) 徒然喜欢你 | 园豆:1599 (小虾三级) | 2018-08-20 16:39

@北妄。: ....

支持(0) 反对(0) bgh | 园豆:36 (初学一级) | 2018-08-21 14:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册