在sql语句中,出现将字符串转换为 uniqueidentifier 时失败的错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql语句中,出现将字符串转换为 uniqueidentifier 时失败的错误相关的知识,希望对你有一定的参考价值。

sql语句是这样的:select * from dbo.Sys_UserInfo
where ID in (
select strOne from V_LeaderVoteInfo where lviTitle='测试数据'
)
ID是uniqueidentifier类型的,strOne在数据库中定义的是varchar,但保存的数据是'28a0cd1a-8641-4cf3-8223-a28a00ec652f','28a0cd1a-8641-4cf3-8223-a28a00ec652f'这样的,是ID拼接的字符串,但现在我要实现这条查询,怎么办呢??

在sql语句中,出现将字符串转换为 uniqueidentifier 时失败的错误是因为转换时写错造成的。

解决方法和详细的操作步骤如下:

1、首先,在“文件”中找到“新建”选项,点击其中的“项目”,如下图所示。

2、其次,选择“控制台应用程序”,然后名称栏中写“Cast和字符串类型转换”并确定,如下图所示。

3、接着,Cast类型转换代码,如下图所示。

4、然后,测试Cast类型转换结果,如下图所示。

5、随后,字符串类型转换代码,如下图所示。

6、最后,测试字符串类型转换的结果,如下图所示。这样,问题便解决了。

参考技术A

在sql语句中,出现将字符串转换为 uniqueidentifier 时失败的错误是因为转换时写错造成的,解决方法为:

1、文件--》新建--》项目。

2、选择:控制台应用程序--》命名:Cast和字符串类型转换--》确定。

3、Cast类型转换代码。

4、测试Cast类型转换结果。

5、字符串类型转换代码。

6、测试字符串类型转换结果。

参考技术B SELECT * from dbo.Sys_UserInfo
where ID in (
select  CAST(strOne AS UNIQUEIDENTIFIER) AS strOne from V_LeaderVoteInfo where lviTitle='测试数据'
)

参考技术C '28a0cd1a-8641-4cf3-8223-a28a00ec652f'应该是MD5码,你可以用hashbytes()函数试试,MD5加密是不能解密的,所以你要先了解加密规则是怎么样 参考技术D Select * From Sys_UserInfo

Where Exists
(
Select strOne From V_LeaderVoteInfo Where charindex( Convert(Varchar(100),id) ,strOne)>0
And lviTitle='测试数据'

)追问

虽然没有错误,但没有查询出数据啊

追答

--你最好截个图,看看ID,strOne长什么样
select ID from dbo.Sys_UserInfo
select strOne from V_LeaderVoteInfo where lviTitle='测试数据'

PLSQL中SQL语句怎样转换日期型函数为字符型?

目前需求:需要selcet where ENDDATE<'2014/01/01'
其中:ENDDATE是一个日期的字段名,而后面的2014/01/01是我要转换的日期,目前查到在数据中ENDDATE的属性如图所示:

在数据库中查的ENDDATE的显示数据如图所示:

紧急求助,谢!!
需要知道使用什么函数,可以将后面的20140101转换,或者将掐面的日期转换成字符串的形式都可以吧?试过很多函数,都不能用。

to_char函数可以将日期值格式化为字符串; to_date函数将字符串按指定格式转换成日期值。
在查询中, 将'2014/01/01'转换成日期值,然后再用作查询条件,这样会比较好。
select ... where enddate < to_date('2014/01/01', 'yyyy/mm/dd')
参考技术A select * from table t where to_char(t.ENDDATE,'yyyy/mm/dd')<'2014/01/01
其中,to_char是将日期转化成字符串的函数;yyyy/mm/dd是指定的日期格式。
参考技术B where to_char(ENDDATE,'yyyy/mm/dd')<'2014/01/01'

这样试试

参考技术C to_char(ENDDATE,'yyyy/mm/dd')

以上是关于在sql语句中,出现将字符串转换为 uniqueidentifier 时失败的错误的主要内容,如果未能解决你的问题,请参考以下文章

mysql里面如何用sql语句让字符串转换为数字

sql语句中怎样将字符类型转换成数字类型

PLSQL中SQL语句怎样转换日期型函数为字符型?

mysql里面如何用sql语句让字符串的‘123’转换为数字的123?

sql 语句 ,怎么将字符型转换为数字型(整型,浮点型)都行,用啥函数 在线等

在 Java 中将动态 SQL 查询转换为准备好的语句