我在SQLite中有以下DDL:
CREATE TABLE money (
id INTEGER PRIMARY KEY,
'when' TIMESTAMP,
amount INTEGER,
note TEXT
) ;
我尝试查看按日期排序的行:
sqlite3 -line money.db "select * from money order by datetime('when') desc limit 5"
但它不会以相反的顺序返回'when'排序的行。将desc
更改为asc
也会得到完全相同的结果。还尝试了order by 'when'
而不是order by datetime('when')
。什么应该是正确的查询?谢谢!
答案 0 :(得分:4)
在SQL中,字符串使用单引号,而表/列名称可以用双引号引用。
SQLite接受两种引号以便与MySQL兼容,但只有当预期含义不明确时才能使用。
在函数调用datetime('when')
中,when
被解释为字符串。
使用datetime("when")
。