听起来比实际上要复杂得多。这是我在 SELECT 部分中尝试做的事情:
SELECT TIMESTAMPADD(
UCASE(
SUBSTRING(offset_unit,1,CHAR_LENGTH(offset_unit)-1)
),1,'2003-01-02') as offset_date
offset_unit是数据库中的一个 VARCHAR 列。它包含以下之一:“小时”、“分钟”。
偏移量是一个 INT。
在删除最后一个字符('s')之后,我试图将 offset_unit 转换为大写,这样我就可以有一个适当的间隔(MINUTE,HOUR ...),这样我就可以得到一个可以在之后排序时使用的日期,但 MySQL 不断抛出错误。我已经通过一次添加一个函数来测试每个步骤,并且只有在我添加 TIMESTAMPADD 后它才会失败。如果我手动输入 MINUTE 则它可以工作。
有什么办法让这个工作?
附加信息:我在 CakePHP 1.3 中运行它,在 'fields' 数组中的一个查找中,但这不应该是重要的。