반응형
MariaDB 10.1에서 비활성 날짜 값을 제거하려면 어떻게 해야 합니까?
날짜 열이 있는 테이블이 하나 있습니다.
foo(이전):
+------------+
| datecolumn |
+------------+
| 1939-04-06 |
| 1949-02-30 |
+------------+
날짜가 유효하지 않으면 NULL로 설정하고 싶습니다.
foo(후):
+------------+
| datecolumn |
+------------+
| 1939-04-06 |
| NULL |
+------------+
MySQL(5.7)에서는 이 트릭을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
ALTER TABLE `foo` MODIFY COLUMN `datecolumn` varchar(255) NULL DEFAULT NULL FIRST;
SET SQL_MODE='ALLOW_INVALID_DATES';
ALTER TABLE `foo` MODIFY COLUMN `datecolumn` date NULL DEFAULT NULL FIRST;
SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
UPDATE `foo` SET `datecolumn` = NULL WHERE `datecolumn` = '0000-00-00';
다만, 이것은 MariaDB 10.1에서는 동작하지 않는 것 같습니다.
1) 다양한 SQL_MODE
2) 각종 STR_TO_DATE 또는 DATE_FORMAT 접근법(NULL을 얻으려고 했는데 유효하지 않은 날짜 문자열을 날짜로 변환했습니다)
누가 내 목표 달성을 도와줄 수 있나요?
이 조작은 유효합니다.
UPDATE foo SET datecolumn = CAST(datecolumn AS DATE);
SQL_MODE에서 strict 모드가 설정되어 있지 않은지 확인하십시오.설정되지 않은 경우 오류가 발생합니다.
언급URL : https://stackoverflow.com/questions/40769880/how-to-remove-invalid-date-values-in-mariadb-10-1
반응형
'sourcecode' 카테고리의 다른 글
java.displaces를 클릭합니다.부정 인수예외:AppCompat는 현재 테마 기능을 지원하지 않습니다. (0) | 2022.09.04 |
---|---|
OSX Yosemite로 "업그레이드"한 후 RStudio/R에서 rJava 로드 오류 발생 (0) | 2022.09.04 |
mysql에서 에폭 번호를 사람이 읽을 수 있는 날짜로 변환하는 중 (0) | 2022.09.04 |
f는 왜 float 값 뒤에 배치됩니까? (0) | 2022.09.04 |
Python의 두 날짜 차이 (0) | 2022.09.04 |