>  기사  >  데이터 베이스  >  시간, 분, 초를 변경하지 않고 시간 필드를 MYSQL로 바꾸는 방법

시간, 분, 초를 변경하지 않고 시간 필드를 MYSQL로 바꾸는 방법

巴扎黑
巴扎黑원래의
2017-07-19 13:10:551315검색
写法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_END 필드 형식은 "2"입니다. 017-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_ 에프 ORMAT(RECEIVE_TIME,'%H:%i:%S') from sas_order_supply_month_pay 여기서 ORDER_CODE='PO201707130115')

이 성명은 단독으로 실행하는 것은 가능하지만 함께 실행하면 오류가 보고됩니다. 수정된 테이블과 하위 쿼리는 동일한 테이블이 될 수 없습니다.

위 내용은 시간, 분, 초를 변경하지 않고 시간 필드를 MYSQL로 바꾸는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.