SQL查询将两个日期列合并为一个组合列
我有一个包含两个不同数据列的表,我想将它们合并为一列SQL查询将两个日期列合并为一个组合列,sql,date,Sql,Date,我有一个包含两个不同数据列的表,我想将它们合并为一列l.date\u Combined 首先考虑在 L.DATEYTIMEIONIC 中是否存在日期。如果为空,请在l.date\u time\u mc中查找日期。将结果放入l.date\u Combined 我能够执行where子句,但我不知道如何为组合字段构建更新逻辑 select l.id, l.date_time_ic, l.date_time_mc from new.customers l where
l.date\u Combined
<>首先考虑在<代码> L.DATEYTIMEIONIC 中是否存在日期。如果为空,请在l.date\u time\u mc
中查找日期。将结果放入l.date\u 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));
我相信您只需要
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' ;
选择l.id,
合并(l.date\u time\u ic,l.date\u time\u mc)作为日期
来自新客户l
其中,联合(l.date\u time\u ic,l.date\u time\u mc)>='2018-04-01'和
合并(l.date_time_ic,l.date_time_mc)<'2018-05-01';
您会注意到,我将日期逻辑更改为使用比较,而不是在之间使用
。是一个关于这个主题的好博客。博客中的大部分内容适用于所有数据库,而不仅仅是SQL Server。感谢您提出的第一个问题,Matt!您需要使用SQL“更新”而不是select。试着从“更新”一文开始:然后当你对更新的工作方式有了更好的了解时,可以调整你提供的查询作为一个例子,社区可以为您提供更好的帮助。只需添加使用ISNULL/COALESCE函数,这可能会对您有所帮助。@M.K.Hunter-我不想使用Update。@rajatswal使用Case station怎么样?我不知道ISNULL/COALESCE。非常感谢。我会调查的,我会试试这个。谢谢。