[SQL] 날짜 사이 SQL 선택
SQL날짜 사이 SQL 선택
나는 영업 보고서에 대해 두 범위 사이에서 데이터를 선택하는 SQLite는 실행하고 있습니다. 나는 다음과 같은 문을 사용하여 두 날짜 사이에서 데이터를 선택합니다 :
SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011";
이 문은 기준 모든 날짜를 심지어 외부를 잡고. 입력 참조 날짜 형식은 내가 돌아올 것과 같은 형식으로되어 있습니다. 나는 확실히 뭐가 잘못 아니에요하지만 난 찾을 수있는 모든 도움을 주셔서 감사합니다. 감사!
해결법
-
==============================
1.SQLite는은 YYYY-MM-DD 형식으로 날짜를 필요로한다. 데이터베이스에있는 데이터와 쿼리 문자열이 그 형식이 아니기 때문에, 아마 문자열로 "날짜"를 치료한다.
SQLite는은 YYYY-MM-DD 형식으로 날짜를 필요로한다. 데이터베이스에있는 데이터와 쿼리 문자열이 그 형식이 아니기 때문에, 아마 문자열로 "날짜"를 치료한다.
-
==============================
2.SQLite는 날짜 형식을 사용하는 형식으로 데이터를 변경합니다.
SQLite는 날짜 형식을 사용하는 형식으로 데이터를 변경합니다.
YYYY-MM-DD YYYY-MM-DD HH:MM YYYY-MM-DD HH:MM:SS YYYY-MM-DD HH:MM:SS.SSS YYYY-MM-DDTHH:MM YYYY-MM-DDTHH:MM:SS YYYY-MM-DDTHH:MM:SS.SSS HH:MM HH:MM:SS HH:MM:SS.SSS now DDDDDDDDDD SELECT * FROM test WHERE date BETWEEN '2011-01-11' AND '2011-08-11'
-
==============================
3.SQLite는에 날짜 사이 선택하는 또 하나의 방법은 강력한은 strftime 기능을 사용하는 것입니다 :
SQLite는에 날짜 사이 선택하는 또 하나의 방법은 강력한은 strftime 기능을 사용하는 것입니다 :
SELECT * FROM test WHERE strftime('%Y-%m-%d', date) BETWEEN "11-01-2011" AND "11-08-2011"
이들은 https://sqlite.org/lang_datefunc.html에 따라 동일합니다
date(...) strftime('%Y-%m-%d', ...)
당신은 더 많은 선택을 원한다면, 당신은 그것이있다.
-
==============================
4.또는 당신은 최신 기능을 날짜 형식으로 문자열을 캐스팅 할 수 있습니다. 심지어 날짜는 DB에서 텍스트로 저장됩니다. 이 (가장 가능한 변형)처럼 :
또는 당신은 최신 기능을 날짜 형식으로 문자열을 캐스팅 할 수 있습니다. 심지어 날짜는 DB에서 텍스트로 저장됩니다. 이 (가장 가능한 변형)처럼 :
SELECT * FROM test WHERE date(date) BETWEEN date('2011-01-11') AND date('2011-8-11')
-
==============================
5.
SELECT * FROM TableName WHERE julianday(substr(date,7)||'-'||substr(date,4,2)||'-'||substr(date,1,2)) BETWEEN julianday('2011-01-11') AND julianday('2011-08-11')
참고 나는 형식을 사용하는 것이 : 일 / 월 / 년을
당신은 D / m / 년을 사용하는 경우, SUBSTR의 변화 ()
이 당신을 도울 것입니다 바랍니다.
-
==============================
6.특별 감사 제프와 vapcguy 당신의 상호 작용은 정말 고무적이다.
특별 감사 제프와 vapcguy 당신의 상호 작용은 정말 고무적이다.
여기 사이의 길이가 '/'알 수없는 경우에 유용 더 복잡한 문입니다 ::
SELECT * FROM tableName WHERE julianday( substr(substr(date, instr(date, '/')+1), instr(substr(date, instr(date, '/')+1), '/')+1) ||'-'|| case when length( substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1),'/')-1) )=2 then substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1), '/')-1) else '0'||substr(date, instr(date, '/')+1, instr(substr(date, instr(date, '/')+1), '/')-1) end ||'-'|| case when length(substr(date,1, instr(date, '/')-1 )) =2 then substr(date,1, instr(date, '/')-1 ) else '0'||substr(date,1, instr(date, '/')-1 ) end ) BETWEEN julianday('2015-03-14') AND julianday('2015-03-16')
from https://stackoverflow.com/questions/8187288/sql-select-between-dates by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 사람의 여러 일을 만들 수 있습니다 (0) | 2020.03.21 |
---|---|
[SQL] 여러 INNER은 SQL 액세스 가입 (0) | 2020.03.21 |
[SQL] 각 그룹의 최대 값을 선택 (0) | 2020.03.21 |
[SQL] 테이블의 열에서 신원 제거 (0) | 2020.03.21 |
[SQL] MySQL의 업데이트 쿼리에 '필드 목록'오류 알 수없는 열 (0) | 2020.03.21 |