我的SQLite
数据库中的每条记录都包含一个字段,其中包含以'yyyy-MM-dd HH:mm:ss'
的格式存储为string
的Date
。SQLite按日期排序
是否可以查询数据库以获取包含最近日期的记录?
我的SQLite
数据库中的每条记录都包含一个字段,其中包含以'yyyy-MM-dd HH:mm:ss'
的格式存储为string
的Date
。SQLite按日期排序
是否可以查询数据库以获取包含最近日期的记录?
,你可以做这样的
SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
请注意,如果您想按日期**和时间**排序,则需要使用'date()'的datetime()'intead' – eliocs
你需要将其转换为UNIX时间戳,然后对它们进行比较:
SELECT * FROM data ORDER BY strftime('%s', date_column) DESC
但这可能是相当缓慢的,如果有大量的行。 更好的方法是默认情况下存储unix时间戳,并为该列创建索引。
对我来说,我有我查询这种方式来解决我的问题
select * from Table order by datetime(datetimeColumn) DESC LIMIT 1
由于我是把它作为日期时间不日期列
此外,date()函数以这种格式返回日期:YYYY-MM-DD。 time()函数将时间返回为HH:MM:SS。 datetime()函数返回“YYYY-MM-DD HH:MM:SS”。 – wangqi060934
你的答案与以前的答案有什么不同?@Ahmad Baraka –
@GowthamSubramaniam使用datetime()而不是date() – AnthoPak
您可以将列“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
当你确定文本字段的格式是yyyy-MM-dd HH:mm:ss
(例如:2017-01-02 16:02:55
),因此它只是为我的作品:
SELECT * FROM Table ORDER BY dateColumn DESC Limit 1
无需任何额外的日期功能!
在我的情况下,一切工作正常没有铸造栏键入“日期”。只需用双引号这样的指定列名:
SELECT * FROM 'Repair' ORDER BY "Date" DESC;
我想的SQLite使得本身或类似的东西铸造,但是当我自己试图“投”日期栏它没有奏效。并没有错误消息。
您应该以毫秒为单位存储日期,并在每次需要显示时进行转换。这将使排序时更容易。 – Andrei