반응형
MySQL 필드 DATETIME이 ISO8601을 잘라냅니다.
MySQL/MariaDB 테이블 생성:
CREATE TABLE `testTable` (
`id` int(11) NOT NULL,
`timeinfo` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
ISO8601의 완전한 값을 다음과 같이 삽입합니다.
MariaDB [test]> INSERT INTO testTable VALUES (1, '2500-12-31T00:00:00.000Z');
Query OK, 1 row affected, 1 warning (0.00 sec)
MariaDB [test]> show warnings;
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1265 | Data truncated for column 'timeinfo' at row 1 |
+---------+------+-----------------------------------------------+
1 row in set (0.00 sec)
MariaDB [test]> select * from testTable;
+----+---------------------+
| id | timeinfo |
+----+---------------------+
| 1 | 2500-12-31 00:00:00 |
+----+---------------------+
1 row in set (0.01 sec)
ZULU TimeZone에서와 같이 "Z"가 잘리는 것을 정확히 알 수 없습니다.
MySQL/MariaDB 필드 타입에 정보를 완전히 저장할 수 있습니까?
그렇다면 어떤 필드 데이터 유형을 사용해야 합니까?
'Z'는 특별한 시간대 지정자입니다.이는 "시간이 UTC 시간대입니다"를 의미합니다.
MySQL 5.7 datetime 및 timestamp 유형은 시간대 정보를 저장할 수 없습니다.MySQL은 "Z"를 이해하지 못합니다.
표준 시간대를 저장해야 할 경우 추가 필드를 사용합니다.
데이터베이스는 다른 입력을 예상하므로 경고가 표시됩니다.
MySQL DATETIME에서는 다음 형식이 필요합니다.
DATETIME - 형식:YYY-MM-DD HH:MI: SS
이렇게 해도 경고는 발생하지 않습니다.
INSERT INTO testTable VALUES (, '2500-12-31 00:00:00');
경고에도 불구하고 데이터베이스에 기록이 가득 차게 됩니다.
언급URL : https://stackoverflow.com/questions/45817809/mysql-field-datetime-truncates-iso8601
반응형
'source' 카테고리의 다른 글
| fs.read File에서 데이터를 가져옵니다. (0) | 2023.01.25 |
|---|---|
| 왜 Python이 기능적 프로그래밍에 적합하지 않은가? (0) | 2023.01.25 |
| INSERT...에서 2행의 영향을 받는 이유는 무엇입니까?중복된 키 업데이트 시? (0) | 2023.01.25 |
| Java 8 스트림의 각 주문과 각 주문의 비교 (0) | 2023.01.25 |
| 컨텍스트 또는 액티비티 외부 getString (0) | 2023.01.25 |