【发布时间】:2014-03-14 11:38:35
【问题描述】:
我有一个包含产品、开始日期和间隔值的表格:
product_name start_date expiry_period
Domain Registration (1 Year) 2013-12-08 00:00:00 1 Year
Domain Registration (1 Year) 2013-12-01 00:00:00 1 Year
Website Hosting (Bronze) 2013-12-19 00:00:00 1 Year
Website Hosting (Silver) 2013-12-20 00:00:00 1 Year
Website Hosting (Silver) 2013-12-21 00:00:00 1 Year
Domain Registration (2 years) 2014-01-04 00:00:00 2 Year
Domain Registration (1 Year) 2014-01-04 00:00:00 1 Year
Website Hosting (Silver) 2014-01-06 00:00:00 1 Year
Domain Registration (2 years) 2014-01-06 00:00:00 2 Year
Domain Registration (1 Year) 2014-01-07 00:00:00 1 Year
Domain Registration (1 Year) 2014-01-10 00:00:00 1 Year
Website Hosting (Bronze) 2014-01-12 00:00:00 1 Year
我正在尝试在我的选择语句中添加一个计算值,以将间隔添加到 start_date,以便我的数据集以编程方式返回开始日期和结束日期。
这是我目前拥有的:
select
product_name,
start_date,
expiry_period
DATE_ADD(start_date, INTERVAL expiry_period) as end_date
from
tbl_products
但是,它针对 DATE_ADD 行返回错误(SQL 语法不正确)。
我读过的所有 SO 文章似乎都表明表达式和类型需要分开(即DATE_ADD(start_date, INTERVAL expiry_value expiry_type)) - 当然不是这样,我可以在一个单曲中传递一个句点领域?
如果不是,并且由于我无法更改数据架构,那么推荐的方法是什么?我曾考虑使用SUBSTRING_INDEX 来拆分列,但这似乎也不起作用。
【问题讨论】:
-
你的区间限定符是否总是
Year? -
不,它可以是任何东西 - 日/周/月/年。只是我的样本数据集最重要的是“年份”