sybase有线输出后的情况

时间:2015-02-04 10:05:41

标签: sql sybase

此后选择sybase DB

SELECT
CASE 
    WHEN 'a' = 'b' THEN CONVERT(datetime,getdate(),23)
    WHEN 'a' <> 'b' THEN ''
END

输出始终是日期(在Squirrel和Aqua Data Studio中尝试过)。

这始终为空

SELECT
CASE 
    WHEN 'a' = 'b' THEN CONVERT(datetime,getdate(),23)
END

如果某些事情不正确,我怎么能得到''?如果某事是真的,我怎么能得到日期计算? 有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:1)

我认为您看到了这种行为,因为您的两种情况正在返回不同的数据类型。

    SELECT
CASE 
    WHEN 'a' = 'b' THEN CONVERT(datetime,getdate(),23)  <-- returns datetime
    WHEN 'a' <> 'b' THEN ''                             <-- returns string
END

select需要返回一致的数据类型。我想你想要返回日期的字符串表示。如果是这种情况,那么您可以将查询更改为以下内容:

SELECT
CASE 
    WHEN 'a' = 'b' THEN CONVERT(varchar,getdate(),23)
    WHEN 'a' <> 'b' THEN ''
END

通过此查询,我看到了案例的正确答案。

希望这会有所帮助:)