ホームページ >データベース >mysql チュートリアル >時、分、秒を変更せずに時間フィールドを MYSQL で置き換える方法

時、分、秒を変更せずに時間フィールドを MYSQL で置き換える方法

巴扎黑
巴扎黑オリジナル
2017-07-19 13:10:551368ブラウズ
写法1:update sas_order_supply_month_pay set RECEIVE_TIME=REPLACE(RECEIVE_TIME,DATE_FORMAT(RECEIVE_TIME,'%Y-%m-%d'),(select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%')) where ORDER_CODE='PO201707130115';
写法2:update sas_order_supply_month_pay set RECEIVE_TIME= ADDTIME ((select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%')+interval 0 hour,time(RECEIVE_TIME)) where ORDER_CODE='PO201707130115';
写法3:update sas_order_supply_month_pay set RECEIVE_TIME = concat((select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%'),' ',DATE_FORMAT(RECEIVE_TIME,'%H:%i:%S')) where ORDER_CODE='PO201707130115';

説明: sas_order_supply_month_pay テーブルの RECEIVE_TIME フィールドの形式は「2017-06-16 12:13:16」であり、sas_task_supply_month_pay_period テーブルの PERIOD_END フィールドの形式は「 2017-07- 1 2",

実行後、RECEIVE_TIMEは"2017-07-12 12:13:16"に変更されます。

错误写法:update sas_order_supply_month_pay set RECEIVE_TIME = DATE_FORMAT(concat((select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%'),' ',(select DATE_FORMAT(RECEIVE_TIME,'%H:%i:%S') from sas_order_supply_month_pay 
where ORDER_CODE='PO201707130115')),"yyyy-MM-dd %H:%i:%S") where ORDER_CODE='PO201707130115';

エラー報告: [Err] 1093 - FROM 句で更新のターゲットテーブル「sas_order_supply_month_pay」を指定することはできません

エラー分析:

エラーステートメント: (select DATE_Fオーマット(RECEIVE_TIME,'%H:%i:%S') from sas_order_supply_month_pay where ORDER_CODE='PO201707130115')

このステートメントは実行されます単独で実行することは可能ですが、一緒に実行するとエラーが報告されます。変更されたテーブルとサブクエリを同じテーブルにすることはできません。

以上が時、分、秒を変更せずに時間フィールドを MYSQL で置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。