SQLite - 仅按年份选择?

lau*_*kok 5 sql sqlite

如何仅按年份从表中选择行?

SELECT * FROM speckdata AS s WHERE DATE_FORMAT(s.localdate, '%Y') = '2014')
Run Code Online (Sandbox Code Playgroud)

我可以得到结果 MySQL

现在sqlite我得到这个错误,

SQLiteManager:可能的SQL语法错误:SELECT*FROM speckdata AS s WHERE DATE_FORMAT(s.localdate,'%Y')='2014')[near")":语法错误异常名称:NS_ERROR_FAILURE异常消息:组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[mozIStorageConnection.createStatement]

有任何想法吗?

编辑:

如果我改成它,

WHERE DATE(s.localdate, '%Y') = '2014'
Run Code Online (Sandbox Code Playgroud)

它没有返回任何结果.

顺便说一句,localdate是日期时间格式,如2014-10-09 14:59:53

sql*_*ser 10

试试这个:

SELECT * FROM speckdata AS s WHERE strftime('%Y', s.localdate) = '2014'
Run Code Online (Sandbox Code Playgroud)


Ire*_*Ire 5

由于 DATE_FORMAT 不起作用,也许您可​​以尝试替代解决方案

SELECT * FROM speckdata AS s WHERE DATE(s.localdate) LIKE '2014%'
Run Code Online (Sandbox Code Playgroud)

PS 您在编辑中调用了 DATE 而不是 DATE_FORMAT,我不知道这是故意的还是对您造成的意外。