Sql server 2008 选择where子句以显示不同的结果

Sql server 2008 选择where子句以显示不同的结果,sql-server-2008,tsql,validation,date,Sql Server 2008,Tsql,Validation,Date,我在SQLServer2008过程中得到了这个查询 insert into tableXYZ(ID, CODPROY, NOMPROY, TITOBS, OBSERVACION, RECOMENDACION, RESPUESTA, UNIDRESP, CONTACTO, FECHAEMISION, RIESGO, ULTIMAACTUALIZACION, FECHAVENCIMIENTO, ESTADO, FECHACARGATC, REGULADOR, REGULADO) select

我在SQLServer2008过程中得到了这个查询

insert into tableXYZ(ID, CODPROY, NOMPROY, TITOBS, OBSERVACION, RECOMENDACION, RESPUESTA, UNIDRESP, CONTACTO, FECHAEMISION, RIESGO, ULTIMAACTUALIZACION, FECHAVENCIMIENTO, ESTADO, FECHACARGATC, REGULADOR, REGULADO) 
  select 
     ID_Obs, CodigoProyecto, NombreProyecto, TituloObservacion, Incidencia, 
     Recomendacion, Respuesta, UnidadResponsable, Propietario, 
     case when isdate(FechaEmision) = 1 then CONVERT(DATETIME, FechaEmision, 103) end, 
     Riesgo, EstadoActualizacion, 
     case when isdate(FechaRevisada) = 1 then (CONVERT(DATETIME, FechaRevisada, 103)) else (case when isdate(FechaEstimada) = 1 then CONVERT(DATETIME,FechaEstimada,105) end) end,
     Estado, 
     case when isdate(FechaCargaTC) = 1 then CONVERT(DATETIME, FechaCargaTC, 103) end,
     Grupo, 'BCPPE' 
  from 
     @myTableType 
  where 
     GRUPO <> '467' and GRUPO <> '912' and GRUPO <> '910' and GRUPO <> ''

查询的这一部分适合我,但不适合我的合作伙伴

是的,这里有一个线索:“不要那样做。”你说不同的用户……这些是偶然发生在不同的数据库上的吗?我想知道日期是否有国际化问题。(特别是isdate()函数)我在.net中有一个服务器客户端应用程序,它使用来自BD的信息,当我在我的pc中运行该应用程序(使用windows身份验证)时,结果是正常的,但当其他人运行该应用程序时,该应用程序没有如我预期的那样工作。如果
FechaRevisada
FechaEstimada
都不是有效日期,会发生什么?应该发生什么?为您和您的合作伙伴执行以下SQL并告诉我们结果:
从sys.dm\u exec\u sessions中选择日期格式、语言,其中session\u id=@@SPID
case when isdate(FechaRevisada) = 1 then (CONVERT(DATETIME, FechaRevisada, 103)) 
     else (case when isdate(FechaEstimada) = 1 then CONVERT(DATETIME, FechaEstimada, 105) end) 
end