【发布时间】:2023-04-04 03:46:01
【问题描述】:
我正在使用REXTESTER 编写一段 SQL Server 代码。
它说正在使用的是 SQL Server 2014 Express Edition...
这是导致该消息的最少代码。
CREATE PROCEDURE #CONVERT_TIME_TO_24_HR
(
@TIME_STRING varchar(4)
)
AS
BEGIN
DECLARE @AMPM as varchar(2);
SET @AMPM = RIGHT(@TIME_STRING,2);
IF @AMPM = 'am'
SELECT 2
END
GO
这是错误:
Error(s), warning(s):
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.
如果刚刚声明了@TIME_STRING 而不是存储过程的参数,我没有问题。由于我无法控制 SQL Server 实例,我该如何解决这个问题?
这是一个forked version,当它不是参数时 - 没问题
DECLARE @TIME_STRING varchar(4);
DECLARE @AMPM as varchar(2);
SET @AMPM = RIGHT(@TIME_STRING,2);
IF @AMPM = 'am'
SELECT 2
【问题讨论】:
标签: sql sql-server collation