我使用以下代码从日期列返回数据,但如果没有日期,我不确定如何返回今天的日期。
为了将其置于上下文中,患者将导管插入date
,然后在另一date
上移除。如果它没有被删除(即"删除"列中没有date
),它仍然存在,所以我需要将NULL
替换为current date
。
我让它工作,它只是拉回NULL
的当前日期而没有其他日期(对于在" Removed
")中输入的患者,以及我可以获得" Removed
"的日期其余的NULL
足够容易,但无法成功连接两者。我的最新尝试是提供了一个错误的param count
错误,我理解但不知道如何继续。
select
oid,
DATE_FORMAT(va.ins_dte, '%d/%m/%Y') AS 'Inserted',
(DATE_FORMAT(va.rem_dte, '%d/%m/%Y') , ifnull(va.rem_dte), curdate()) AS 'Removed'
from Vascular va
有人可以告诉我如何将所有内容移除dates
以及NULL
,请添加当前的date
吗?
谢谢,
麦克
答案 0 :(得分:1)
IFNULL的语法是:
SELECT IFNULL (`NullableValue`, ValueIfNull)) FROM `TableName`
您应该将其用作ifnull
的第二个参数:
ifnull(va.rem_dte, curdate())
你的最终SQL应该是:
SELECT
oid, DATE_FORMAT(va.ins_dte, '%d/%m/%Y') AS 'Inserted',
DATE_FORMAT(IFNULL(va.rem_dte, CURDATE()), '%d/%m/%Y') AS 'Removed'
FROM Vascular va
答案 1 :(得分:1)
这应该根据IFNULL
的文档
SELECT
oid,
DATE_FORMAT(va.ins_dte, '%d/%m/%Y') AS 'Inserted',
DATE_FORMAT(IFNULL(va.rem_dte, CURDATE()), '%d/%m/%Y') AS 'Removed'
FROM Vascular va
对于您的情况,如果va.rem_dte
为NULL
,您希望获取当前日期。这可以表示为
IFNULL(va.rem_dte, CURDATE())
然后可以将该表达式的结果传递给DATE_FORMAT
函数:
DATE_FORMAT(IFNULL(va.rem_dte, CURDATE()), '%d/%m/%Y')