날짜 별 SQLite 주문 1530019888000
내에서 모든 기록을 SQLite
데이터베이스가 들어있는 필드가 들어 Date
A와 저장 string
형식을 'yyyy-MM-dd HH:mm:ss'
.
가장 최근 날짜가 포함 된 레코드를 얻기 위해 데이터베이스를 쿼리 할 수 있습니까?
당신은 이렇게 할 수 있습니다
SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
나를 위해 내 문제를 해결하기 위해 이런 식으로 쿼리를 받았습니다.
select * from Table order by datetime(datetimeColumn) DESC LIMIT 1
날짜 열이 아닌 datetime으로 저장했기 때문에
유닉스 타임 스탬프로 변환 한 다음 비교해야합니다.
SELECT * FROM data ORDER BY strftime('%s', date_column) DESC
그러나 행이 많으면 속도가 매우 느릴 수 있습니다. 더 나은 방법은 기본적으로 유닉스 타임 스탬프를 저장하고 해당 열에 대한 인덱스를 만드는 것입니다.
텍스트 필드의 형식이 yyyy-MM-dd HH:mm:ss
(예 :) 인지 확인하면 2017-01-02 16:02:55
간단히 작동합니다.
SELECT * FROM Table ORDER BY dateColumn DESC Limit 1
추가 날짜 기능없이!
"sent_date_time"열을 yyyy-MM-dd 형식으로 변환 한 다음 날짜별로 정렬 할 수 있습니다.
1 ) substr(sent_date_time,7,4)||"-"||substr(sent_date_time,1,2)||"-"||substr(sent_date_time,4,2) as date
2) order by date desc
내 경우에는 모든 것이 제대로 작동 하지 않고 캐스팅 '날짜'를 입력 열을. 다음 과 같이 큰 따옴표로 열 이름을 지정하면됩니다 .
SELECT * FROM 'Repair' ORDER BY "Date" DESC;
나는 SQLite가 자체적으로 또는 이와 비슷한 것을 캐스팅한다고 생각하지만 나 혼자서 Date 열을 '캐스트'하려고하면 작동하지 않습니다. 그리고 오류 메시지도 없었습니다.
날짜 정렬 / 비교를 많이하는 경우 시간을 문자열이 아닌 틱으로 저장하여 더 나은 결과를 얻을 수 있습니다. 다음은 틱에서 '지금'을 얻는 방법을 보여줍니다.
((strftime('%s', 'now') - strftime('%S', 'now') + strftime('%f', 'now')) * 1000)
( https://stackoverflow.com/a/20478329/460084 참조 )
그러면 정렬, 비교 등이 쉽습니다.
참고 URL : https://stackoverflow.com/questions/14091183/sqlite-order-by-date1530019888000
'programing tip' 카테고리의 다른 글
ProgressDialog에서 진행률 표시기를 쉽게 중앙에 배치하는 방법 (제목 / 텍스트가 전달되지 않은 경우) (0) | 2020.11.26 |
---|---|
JQuery를 사용하여 : Before CSS 선택기의 너비 속성 변경 (0) | 2020.11.26 |
부트 스트랩 모달이 표시 / 숨겨져 있는지 확인할 수 있습니까? (0) | 2020.11.26 |
ios 사용법 설명에 대한 edit-config : doc.find는 함수가 아닙니다. (0) | 2020.11.26 |
브라우저에서 항상 수직 스크롤바를 표시하는 방법은 무엇입니까? (0) | 2020.11.26 |