나는 다음과 같은 테이블에 내 SQLite 데이터베이스에 문자열을 전달할 수 있는지 확인하기 위해 테스트되었습니다SQL에서 datetime을 사용해야하는 이유는 무엇입니까?
CREATE TABLE TIMES(
ID INT PRIMARY KEY ,
TIME_START DATETIME DEFAULT CURRENT_TIMESTAMP ,
TIME_STOP DATETIME ,
CONSTRAINT FUTURE_DATE CHECK
(TIME_START >= CURRENT_TIMESTAMP AND TIME_STOP >= CURRENT_TIMESTAMP)
);
을 위하여 :
INSERT INTO TIMES VALUES (1, "2016-07-31 07:08:00", NULL)
그것은 아무 문제를 통과하지 않습니다. 나는 이것을보고 약간 놀랐으므로 또 다른 값을 시도했다 :
INSERT INTO TIMES VALUES (2, "9999999999 07:08:00", NULL)
그리고 통과했다. 이것은 DATETIME
값만을 허용하기로되어 있으므로 걱정이됩니다. 다른 값을 시도했습니다 :
INSERT INTO TIMES VALUES (3, "9999999999:::::::::", NULL);
INSERT INTO TIMES VALUES (4, "9999999999 99:99:99", NULL);
INSERT INTO TIMES VALUES (6, "this is some really random text", NULL);
INSERT INTO TIMES VALUES (6, "9999999999999999999", NULL);
마지막 하나만 남았습니다. 내 질문은 왜 데이터 형식의 유효성을 검사하지 않을 때 날짜 시간을 사용합니까? CHAR
을 사용할 수 없습니다 (사실 CHAR
은 DATETIME
보다 많은 제약이 있으므로 글자 수를 제한합니다).
이러한 모든 테스트됩니다
- http://sqliteonline.com/
- 파이썬의
sqlite3
그런 다음 입력해야하는 이유는 무엇입니까? 그렇게하는 데 어떤 이점이 있습니까? (어떤 유형이 어디에 있어야하는지 알지 못함) –
다른 SQL DB와의 호환성. –