SQLite - 仅按年份选择行?

时间:2015-05-27 03:47:19

标签: sql sqlite

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

SELECT * FROM speckdata AS s WHERE DATE_FORMAT(s.localdate, '%Y') = '2014')

我可以在MySQL

中获得结果

现在sqlite我收到此错误,

  

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

有什么想法吗?

修改

如果我将其更改为,

WHERE DATE(s.localdate, '%Y') = '2014'

没有结果。

BTW,localdate采用日期时间格式,例如 2014-10-09 14:59:53

2 个答案:

答案 0 :(得分:8)

试试这个:

SELECT * FROM speckdata AS s WHERE strftime('%Y', s.localdate) = '2014'

答案 1 :(得分:2)

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

SELECT * FROM speckdata AS s WHERE DATE(s.localdate) LIKE '2014%'

P.S。您在编辑中调用了DATE而不是DATE_FORMAT,我不知道它的意图或意外。