我正在尝试使用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
答案 0 :(得分:0)
@Barmar - 不,我无法重现SQLFiddle中的错误,我真正打破了Java的架构和值。
<强>解决强>
我不得不深入研究如何构建表并找到正确的模式。这就是我在DB中真正拥有的东西(尽管PHPStorm显示&#34; 0000-00-00&#34;作为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