start_time: TIMESTAMP
テーブルには、、 の 3 つのフィールドがdays_prior: INT
ありtime_open: TIME
ます。これから start_time - days の値を取得し、結果の時間部分を設定してから00:00:00
、それに時間を追加します。
つまり、元のタイムスタンプは '2013-05-02 14:57:00' のようなもので、日は 1、時間は '09:30:00' で、'2013-05-01 09:30 を返したい:00'.
これは、タイムスタンプの日付部分を分割し、それを時刻と連結することで実行できることを認識しています。ただし、WHERE ステートメントの一部として同じクエリで結果を使用したい場合は、連結の結果もタイムスタンプにする必要があります。
私のクエリは、理想的には次のようになります。
SELECT
t1.id,
t1.start_time,
CONCAT(DATE_SUB(DATE(t1.start_time), INTERVAL t2.days_prior DAY), ' ', t2.time_open)
FROM
t1, t2
WHERE
t1.t2_id = t2.id
ただし、これは次のような結果を生成しています。
1, 2012-10-30 18:00:00, 323031322d31302d33302030393a30303a3030