哪个数据库?
日期始终与日期部分一起存储,因此这似乎是一个格式问题。我在下面有一个解决方案,但实际格式可能有点偏差。问题似乎与逻辑有关,您可以轻松地研究格式化字符串以获得所需的内容。
这是一个 Oracle 解决方案:(请注意,我使用来自 DUAL 的 UNION 创建了一个内联视图来模拟您的数据。只需在此处添加您的表。)
select dt, when,
case
when trunc(sysdate) = trunc(dt) then to_char(dt, 'hh24:mi:ss')
else to_char(dt, 'yyyy-dd-mm hh24:mi:ss')
end yourResult
from
(
select sysdate dt, 'today' when
from dual
union
select sysdate-1 dt, 'yesterday' when
from dual
);
这是一个 SQL Server 解决方案:(同样,有一个内联视图来模拟您的数据)
select dt, whn,
case
when cast(getDate() As Date) = cast(dt As Date) then convert(varchar(20), dt, 108)
else convert(varchar(20), dt, 120 )
end your_Result
from
(
select getDate() dt, 'today' whn
union
select getDate()-1 dt, 'yesterday' whn
) x;