1

同じテーブルの 2 つの列を更新する必要があります。列には、同じ時点の DATE と TIME が別々に含まれています。このタイムポイントを 7 時間短縮し、結果をその 2 列に保存する必要があります。このクエリを使用しています

update wp_2_em_events 
set event_start_time = DATE_FORMAT(
    DATE_SUB(concat(event_start_date,' ',event_start_time), 
        INTERVAL 7 HOUR), 
    '%H:%i:%s'), 
event_start_date = DATE_FORMAT(
    DATE_SUB(concat(event_start_date,' ',event_start_time), 
        INTERVAL 7 HOUR),
    '%Y-%m-%d'),

ご覧のとおり、2 列目 ( event_start_date) は適切に更新できません。これは、式が既に更新されたパラメーターを使用しているためです。

両方の列を同時に更新する方法、または変更された日時を一時変数に保存して両方の列に使用する方法を教えてください。

4

1 に答える 1

0

これは一時変数を使用したソリューションです

update wp_2_em_events
set event_start_time = DATE_FORMAT(
     (@t := DATE_SUB(concat(event_start_date,' ',event_start_time), 
          INTERVAL 7 HOUR)),'%H:%i:%s'),
    event_start_date = DATE_FORMAT(@t,'%Y-%m-%d')
于 2013-09-23T03:14:15.353 に答える