此后选择一个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] 删除。
我来说两句