Sql server SQL Server:比较变量

Sql server SQL Server:比较变量,sql-server,stored-procedures,Sql Server,Stored Procedures,我对存储过程非常陌生,我必须对两个日期进行比较,以确定它们是否相等 如果日期相等,我必须只返回其中一个,否则,我必须返回两个日期 在这段代码中,返回值是一个整数,我无法识别 代码如下: CASE WHEN gru.date1 = gru.date2 THEN CONVERT (CHAR(11), gru.date2,103) ELSE CONVERT(CHAR(10), gru.date1,103) + CHAR(32)+CHAR(97)+CHAR(32) + CONV

我对存储过程非常陌生,我必须对两个日期进行比较,以确定它们是否相等

如果日期相等,我必须只返回其中一个,否则,我必须返回两个日期

在这段代码中,返回值是一个整数,我无法识别

代码如下:

CASE
  WHEN gru.date1 = gru.date2 THEN 
    CONVERT (CHAR(11), gru.date2,103)
  ELSE
    CONVERT(CHAR(10), gru.date1,103) + CHAR(32)+CHAR(97)+CHAR(32) + CONVERT(CHAR(11), gru.date2,103)
END date'

日期被解释为数字并被添加。您需要将空白连接到连接的开头,以便将其预先标识为字符串:

CASE
  WHEN gru.date1 = gru.date2 THEN 
    CONVERT (CHAR(11), gru.date2,103)
  ELSE
    ''+ CONVERT(CHAR(10), gru.date1,103) + CHAR(32)+CHAR(97)+CHAR(32) + CONVERT(CHAR(11), gru.date2,103)
END date

您的问题是什么?为什么这不是返回日期类型。呵呵呵呵,你的一个日期是空的吗?这个日期永远不会返回空的。那么它返回的是什么呢?你有错误吗?你的SQL文件在开始时没有空白。