SQLite Order By Date1530019888000

 ̄綄美尐妖づ 提交于 2019-12-17 08:54:39

问题


Every record in my SQLite database contains a field which contains a Date stored as a string in the format 'yyyy-MM-dd HH:mm:ss'.

Is it possible to query the database to get the record which contains the most recent date please?


回答1:


you can do it like this

SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1



回答2:


For me I had my query this way to solve my problem

select *  from Table order  by datetime(datetimeColumn) DESC LIMIT 1

Since I was storing it as datetime not date column




回答3:


You need to convert it to unix timestamp, and then compare them:

SELECT * FROM data ORDER BY strftime('%s', date_column) DESC

But this can be pretty slow, if there are lots of rows. Better approach would be to store unix timestamp by default, and create an index for that column.




回答4:


When you sure the format of text field is yyyy-MM-dd HH:mm:ss (ex.: 2017-01-02 16:02:55), So It works for me simply:

SELECT * FROM Table ORDER BY dateColumn DESC Limit 1

Without any extra date function!




回答5:


You can convert your column "sent_date_time" to yyyy-MM-dd format and then order by date

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



回答6:


In my case everything works fine without casting column to type 'date'. Just by specifying column name with double quotes like that:

SELECT * FROM 'Repair' ORDER BY "Date" DESC;

I think SQLite makes casting by itself or something like that, but when I tried to 'cast' Date column by myself it's not worked. And there was no error messages.




回答7:


If you do a lot of date sorting/comparison, you may get better results by storing time as ticks rather than strings, here is showing how to get 'now' in ticks with:

((strftime('%s', 'now') - strftime('%S', 'now') + strftime('%f', 'now')) * 1000)

(see https://stackoverflow.com/a/20478329/460084)

Then it's easy to sort, compare, etc ...



来源:https://stackoverflow.com/questions/14091183/sqlite-order-by-date1530019888000

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!