我有一个包含订阅值的表格,我想计算订阅到期的时间。
我使用以下语句:
SELECT contractType, paymentReceivedOn FROM payments WHERE id=21
AND IF (contractType = 'abo3', ADDDATE(paymentReceivedOn, 'INTERVAL 3 MONTH') AS expiryDate, 0)
如果我省略了 AS expiryDate 部分,那么我上面的语句是有效的,但是,我似乎无法从 ADDDATE 的计算中得到结果。
如何调整我的查询,以便它根据 paymentReceivedOn + 3 个月为我提供 expiryDate?
最佳答案
因为它不是选择的一部分
SELECT contractType, paymentReceivedOn,
IF (contractType = 'abo3', ADDDATE(paymentReceivedOn, INTERVAL 3 MONTH), NULL)
AS expiryDate FROM payments WHERE id=21
应该可以工作
(从间隔中删除引号)
关于MySQL 使用 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244701/