MySQL: 다른 datetime 필드에 datetime 삽입
DATTIME 컬럼이 있는 테이블이 있습니다.이 날짜 값을 선택하여 다른 열에 삽입하고 싶습니다.
이 작업을 수행했습니다(참고: '2011-12-18 13:17:17'은 DATTIME 필드에서 이전 SELECT에서 제공한 값입니다).
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
알겠습니다, 인용하지 않은 문자열을 넣는 것은 잘못된 것으로 알고 있습니다만, DATTIME은 애초에 문자열에 불과합니까?거기에 뭘 넣으면 되죠?내가 원하는 것은 기존 값을 새 날짜/시간 필드로 확실하게 전송하는 것입니다.
편집:
제가 질문하는 이유는: 저는 DATTIME이라는 특별한 정의를 가지고 있고, 어떻게든 그것이 날짜를 다룰 때 저에게 약간의 보안과 다른 이점을 준다고 생각했습니다.이제 그것은 단순히 전문화된 VARCHAR인 것처럼 보입니다.
답변해 주셔서 감사합니다, 이것은 정말 의도된 행동인 것 같습니다.
MySQL 문서에 따르면 날짜/시간 문자열을 작은 따옴표('YYY-MM-DDH:MM:SS')와 함께 작동합니다.여기 보기: 날짜 및 시간 리터럴
따라서 이 경우 명령어는 다음과 같습니다.
UPDATE products SET former_date='2011-12-18 13:17:17' WHERE id=1
해라
UPDATE products SET former_date=20111218131717 WHERE id=1
또는 STR_을 사용하는 방법을 검토할 수도 있습니다.종료 날짜(STR_ 참조)TO_DATE(str,format) 함수입니다.
MYSQL을 위해 이것을 시도해 보세요.
표 1에 삽입(
myDatetimeField
)VALUEs(STR_TO_DATE('12-01-2014 00:00:00', %m-%d-%Y %H:%i:%s');
검증-
표 1에서 *를 선택합니다.
output - datetime = 2014-12-0100:00:00
코드의 나머지 부분에 DATTIME 값이 필요하지 않으면 하위 선택 항목과 함께 UPDATE 쿼리를 사용하는 것이 더 효율적이고 간편하며 안전합니다.
UPDATE products SET t=(SELECT f FROM products WHERE id=17) WHERE id=42;
또는 단일 테이블에서 같은 행에 있는 경우에만
UPDATE products SET t=f WHERE id=42;
언급URL : https://stackoverflow.com/questions/8551940/mysql-insert-datetime-into-other-datetime-field
'programing' 카테고리의 다른 글
PowerShell에서 오류의 줄 번호를 가져오는 방법 (0) | 2023.08.29 |
---|---|
중복 키 + 자동 증분 문제 mysql (0) | 2023.08.24 |
**kwargs 매개 변수를 문서화하는 올바른 방법은 무엇입니까? (0) | 2023.08.24 |
파이썬 코드 라인이 들여쓰기 중첩 수준을 알 수 있습니까? (0) | 2023.08.24 |
웹 사이트에서 IE9이 호환 모드로 전환되는 이유는 무엇입니까? (0) | 2023.08.24 |