可能我之前一个帖子太着急没说清楚,具体情况是这样:
仓库上架时有时要计算两个货位之间的距离,这样叉车可以走更短的距离节省工作效率。假设我们有两个货位03-04-09 09-04-07,我现在用下面的这条SQL语句得到一个差值来大概知道这两个货位距离有多远
select abs(convert(int,replace('09-04-05','-','')) - convert(int,replace('09-04-07','-','')))但是今天仓库的人员告诉我货位的编号中有带字母的情况,比如09-0C-08,如果是这样用上面的办法就不适用了,因为有字母的话没法转换成整型来计算差值。
select abs(convert(int,replace('09-04-05','-','')) - convert(int,replace('09-0C-08','-','')))
来这就想问问大家有没有什么好的办法能解决这个问题?希望我这次说清楚了,如果哪有不清楚的大家告我我再补充。
仓库上架时有时要计算两个货位之间的距离,这样叉车可以走更短的距离节省工作效率。假设我们有两个货位03-04-09 09-04-07,我现在用下面的这条SQL语句得到一个差值来大概知道这两个货位距离有多远
select abs(convert(int,replace('09-04-05','-','')) - convert(int,replace('09-04-07','-','')))但是今天仓库的人员告诉我货位的编号中有带字母的情况,比如09-0C-08,如果是这样用上面的办法就不适用了,因为有字母的话没法转换成整型来计算差值。
select abs(convert(int,replace('09-04-05','-','')) - convert(int,replace('09-0C-08','-','')))
来这就想问问大家有没有什么好的办法能解决这个问题?希望我这次说清楚了,如果哪有不清楚的大家告我我再补充。
select abs(convert(int,replace('09-04-05','-','')) - convert(int,replace('09-0C-08','-','')))
可以在这个基础上改吗?
SELECT @a='09-04-05',@b='09-0C-08'SELECT CAST( cast(REPLACE(@a,'-','') AS BINARY(6)) AS BIGINT)-
cast(cast(REPLACE(@b,'-','') AS BINARY(6)) AS BIGINT)--result
/*--------------------
-983043(所影响的行数为 1 行)*/