実際よりも複雑に聞こえます。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はエラーをスローし続けます。一度に 1 つの関数を追加して各ステップをテストしましたが、TIMESTAMPADD を追加した後にのみ失敗します。MINUTE を手動で入力すると、機能します。
これを機能させる方法はありますか?
追加情報: 私はこれを CakePHP 1.3 で、「fields」配列内の検索で実行していますが、それは重要ではありません。