如何合并不同的日期类型

qvtsj1bj  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(281)

我想用 COALESCE() 以获得最低的 NULL 默认为的日期 NOW() 从下表:

date1 (timestamp) | date2 (date) | date3 (timestamp)
<null>              <null>         2015-02-04 21:29:05

我尝试的查询是:

SELECT coalesce(date1, timestamp(date2), date3, now()) as edited
FROM backupDB
xwmevbvl

xwmevbvl1#

@不,我不能重现SQLFIDLE中的错误,我真正拥有的模式和值破坏了它们的java。
解决了的
我必须深入研究表是如何构建的,并找到正确的模式。这是我在db中真正拥有的(尽管phpstorm将“0000-00-00”显示为 NULL ):

CREATE TABLE backupDB (
  date1 TIMESTAMP NULL,
  date2 DATE DEFAULT '0000-00-00',
  date3 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);

INSERT INTO backupDB (date1, date2, date3) VALUES
(NULL, '0000-00-00', '2015-02-04 21:29:05');

因此,必要的查询看起来更像这样:(请随意批评和改进)

SELECT
  coalesce(date1, if(date2= '0000-00-00', null, timestamp(date2)), date3, now()) as edited
FROM backupDB

相关问题