sybase有线输出后的情况

用户名

此后选择一个sybase数据库

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

如果某些情况不正确,如何得到结果呢?如果某些情况为真,如何计算日期呢?有人可以解释这种行为吗?

洛加德

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

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

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

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

通过此查询,我看到的情况是正确的响应。

希望这可以帮助 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章