【问题标题】:How to get previous day via SQLite in Swift如何在 Swift 中通过 SQLite 获取前一天
【发布时间】:2018-12-11 08:14:26
【问题描述】:

我有一个包含多个日期的 sqlite 表。我想执行一个查询来选择那些日期是前一个日期的记录。我尝试了以下方法,但它不起作用:

SELECT SUM(Amount) AS TOTAL FROM (SpentAmount) Where Date ='\(Date().yesterday)'"

输出为:'2018-07-02 05:43:16 +0000'

但我只想要日期和这种格式:'02-07-2018'

我正在尝试这个:SELECT SUM(Amount) AS TOTAL FROM SpentAmount WHERE Date = DATE('now', '-1 days');

但是这个查询没有给我任何结果

这是我的数据库Database 但是当我执行查询然后给我这个result

【问题讨论】:

  • 上一个日期是什么?昨天,还是前一个日期到其他日期?
  • 您是如何存储日期的?您是否将它们存储为 02-07-2018
  • 是的,这是我的日期格式 02.07.2018
  • 那是 7 月 2 日还是 2 月 27 日?格式不好。

标签: sqlite


【解决方案1】:

如果您想定位昨天(即今天之前的日期),请使用DATE('now', '-1 days')

SELECT SUM(Amount) AS TOTAL
FROM SpentAmount
WHERE Date = STRFTIME('%d.%m.%Y', DATE('now', '-1 days'));

作为一般性评论,您当前的日期格式非常不理想。很难按日期对表格进行排序。相反,您应该始终使用 SQLite 以 ISO 格式存储日期信息,即使用 2018-07-02 02-07-2018

【讨论】:

  • 这应该适用于日期,但如果需要精确的 '02-07-2018' 格式,我们可以使用 STRFTIME,如 STRFTIME('%d-%m-%Y', DATE('now' , '-1 天'))
  • 更新问题请检查
  • @CRDave 看起来你是对的。感谢您的评论,我很感激。
  • 谢谢@TimBiegeleisen 这个查询给我正确的结果再次谢谢前辈
  • @CRDave 也谢谢前辈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
相关资源
最近更新 更多