복붙노트

[SQL] MySQL은 : 다른 날짜 필드에 삽입 날짜

SQL

MySQL은 : 다른 날짜 필드에 삽입 날짜

나는 DATETIME 열이있는 테이블이 있습니다. 나는이 날짜 시간 값을 선택하고 다른 컬럼에 삽입하고 싶습니다.

나는이 ( '2011-12-18 13시 17분 17초'는 전 SELECT는 DATETIME 필드에서 내게 준 값이다 참고)했다 :

UPDATE products SET former_date=2011-12-18 13:17:17 WHERE id=1

그리고 얻다

    1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near '13:17:17 WHERE itemid=1' at line 1

좋아, 나는 거기에 인용되지 않은 문자열을 넣어 잘못하지만, DATETIME은 처음에 단지 문자열 이해? 나는 거기에 무엇을 넣을까요? 모든 I의 희망 안정적 새로운 날짜 필드에 걸쳐 기존 값을 전송한다 ...

편집하다:

나는이 특별한 정의, DATETIME을 가지고 있고, 어떻게 든 날짜를 처리 할 때 그것은 나에게 몇 가지 보안 및 다른 장점을 제공합니다 생각 : 내가 물어 이유입니다. 지금은 말하자면, 단순히 전문 VARCHAR 것 같다.

감사합니다 귀하의 답변,이 실제로 의도 된 행동을 보인다.

해결법

  1. ==============================

    1.그것은 작동합니다 MySQL의 문서에 따르면, 당신은 작은 따옴표 ( ': MM SS YYYY-MM-DD HH')에서 날짜 문자열이 있다는 바로 둘러싸 수 있어야한다. 여기 봐 : 날짜 및 시간 리터럴

    그것은 작동합니다 MySQL의 문서에 따르면, 당신은 작은 따옴표 ( ': MM SS YYYY-MM-DD HH')에서 날짜 문자열이 있다는 바로 둘러싸 수 있어야한다. 여기 봐 : 날짜 및 시간 리터럴

    다음과 같이 따라서, 귀하의 경우 명령은 다음과 같습니다

    UPDATE products SET former_date='2011-12-18 13:17:17' WHERE id=1
    
  2. ==============================

    2.시험

    시험

        UPDATE products SET former_date=20111218131717 WHERE id=1
    

    또는, STR_TO_DATE (STR_TO_DATE 참조 (STR, 형식)) 함수를 사용하여보고 할 수 있습니다.

  3. ==============================

    3.MYSQL이 시도

    MYSQL이 시도

    확인-

  4. ==============================

    4.당신은 당신의 코드의 나머지 부분에서 DATETIME 값이 필요하지 않은 경우, 간단, 더 효율적와 함께 업데이트 쿼리를 사용하여 고정 것 같은 뭔가를 하위 선택

    당신은 당신의 코드의 나머지 부분에서 DATETIME 값이 필요하지 않은 경우, 간단, 더 효율적와 함께 업데이트 쿼리를 사용하여 고정 것 같은 뭔가를 하위 선택

    UPDATE products SET t=(SELECT f FROM products WHERE id=17) WHERE id=42;
    

    또는 경우에 그냥 하나의 테이블에서 같은 행에의

    UPDATE products SET t=f WHERE id=42;
    
  5. from https://stackoverflow.com/questions/8551940/mysql-insert-datetime-into-other-datetime-field by cc-by-sa and MIT license