用于将2个日期列组合到组合列中的SQL查询

时间:2018-05-27 01:17:55

标签: sql date

我有一个包含两个不同数据列的表格,我希望将其合并为一列l.date_Combined

首先考虑l.date_time_ic中是否有日期。如果为空,请在l.date_time_mc中查找日期。将结果放入l.date_Combined

我能够执行where子句,但我不知道如何为组合字段构建更新逻辑。

select
    l.id,
    l.date_time_ic,
    l.date_time_mc
from 
    new.customers l
where
    ((l.date_time_ic between '4/1/2018' and '4/30/2018') or
    (l.date_time_mc between '4/1/2018' and '4/30/2018' and
     l.date_time_ic is null));

1 个答案:

答案 0 :(得分:1)

我相信你只想要coalesce()。更重要的是,使用ISO / ANSI标准格式表示您的日期,例如YYYY-MM-DD:

select l.id,
       coalesce(l.date_time_ic, l.date_time_mc) as thedate
from new.customers l
where coalesce(l.date_time_ic, l.date_time_mc) >= '2018-04-01' and
      coalesce(l.date_time_ic, l.date_time_mc) < '2018-05-01' ;

您会注意到我更改了日期逻辑以使用比较而不是betweenHere是关于该主题的好博客。博客中的大部分内容适用于所有数据库,而不仅仅适用于SQL Server。