Maison >base de données >tutoriel mysql >Comment remplacer les champs horaires par MYSQL sans changer les heures, les minutes et les secondes
写法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';
Remarque : Le format du champ RECEIVE_TIME de la table sas_order_supply_month_pay est "2017-06-16 12 : 13:16", le format du champ PERIOD_END de la table sas_task_supply_month_pay_period est "2017-07-12",
Après l'exécution, le RECEIVE_TIME est modifié en "2017- 07-1212: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';
select DATE_FORMAT(RECEIVE_TIME,'%H:%i : %S') de sas_order_supply_month_pay où ORDER_CODE='PO201707130115')
Cette instruction peut être exécutée individuellement, mais une erreur sera signalée lorsqu'elle est exécutée ensemble. Devinez : modification de la table et du. la sous-requête ne peut pas être la même. Une montre ?Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!