【问题标题】:SQLite - select row by year only?SQLite - 仅按年选择行?
【发布时间】:2015-05-27 03:47:18
【问题描述】:

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

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

我可以在MySQL得到结果

现在在sqlite 我收到此错误,

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

有什么想法吗?

编辑:

如果我改成,

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

它不返回任何结果。

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

【问题讨论】:

  • SELECT * FROM speckdata AS s WHERE DATE_FORMAT(s.localdate, '%Y') = '2014'
  • 你确定你在localdate中有2014年吗?
  • 日期时间格式如2014-10-09 14:59:53

标签: sql sqlite


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多