SQL 날짜 선택
판매 보고서의 두 범위 사이에서 데이터를 선택하기 위해 sqlite를 실행하고 있습니다. 두 날짜 사이의 데이터를 선택하려면 다음 문을 사용합니다.
SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011";
이 문은 기준을 벗어난 날짜도 모두 포함합니다. 입력하신 날짜 형식은 제가받은 것과 동일한 형식입니다. 무엇이 잘못되었는지는 잘 모르겠지만 도움을 주시면 감사하겠습니다. 감사!
SQLLite는 날짜 YYYY-MM-DD
형식이 필요 합니다. 데이터베이스의 데이터와 쿼리의 문자열이 해당 형식이 아니므로 "날짜"를 문자열로 취급 할 수 있습니다.
sqlite datetime 형식 을 사용하려면 데이터를 해당 형식으로 변경하십시오 .
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'
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', ...)
하지만 더 많은 선택권을 원하면 선택할 수 있습니다.
또는 날짜 함수 를 사용하여 문자열을 날짜 형식으로 캐스팅 할 수 있습니다 . 날짜조차도 DB에 TEXT로 저장됩니다. 다음과 같이 (가장 실행 가능한 변형) :
SELECT * FROM test WHERE date(date)
BETWEEN date('2011-01-11') AND date('2011-8-11')
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')
다음 형식을 사용합니다. dd/mm/yyyy
d / m / yyyy를 사용하는 경우 변경 substr()
이것이 당신을 도울 것입니다.
Jeff 와 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')
참고 URL : https://stackoverflow.com/questions/8187288/sql-select-between-dates
'code' 카테고리의 다른 글
StackPanel에 컬렉션 바인딩 (0) | 2020.11.20 |
---|---|
구조체 초기화로 구성된 벡터 (0) | 2020.11.20 |
fileExistsAtPath : 존재하는 파일에 대해 NO 반환 (0) | 2020.11.20 |
Ruby on Rails 콘솔에서 내 명령 기록을 기억하도록 할 수 있습니까? (0) | 2020.11.20 |
MySql Workbench의 테이블 데이터를 CSV로 내보내는 방법은 무엇입니까? (0) | 2020.11.20 |