【问题标题】:Using SQLite3 on iPhone to get midnight (this morning) as a UNIX timestamp在 iPhone 上使用 SQLite3 获取午夜(今天早上)作为 UNIX 时间戳
【发布时间】:2011-03-14 08:29:51
【问题描述】:

好的,我真的知道这有很长的路要走...但是,我想要的是相对简单的人会想。我有一个带有时间戳列的数据库。我正在使用带有 SQLite3 的 iPhone SDK。我想让 SQLite3 获取今天的所有记录(其中时间戳 >= 今天早上的午夜)..

我想出的(有效的)如下。但是必须有更好的方法。这需要太多的步骤才能成为最好的方法。 (我希望 SQLite3 自己计算时间戳......所以请不要告诉我将 NSDate 与 NSCalendar 等一起使用。)

select * from table where timestamp >= strftime('%s','now') - (strftime('%S',datetime('now','localtime')) + (strftime('%M',datetime('now','localtime')) * 60) + (strftime('%H',datetime('now','localtime')) * 3600));

必须有一种更简单的方法(最好是一种,我不会每次调用 datetime 和 strftime 4 次或更多次)

【问题讨论】:

  • 嘿。日期和时间计算看似复杂。我们只是有太多工具可以为我们做这件事,以至于我们忘记了。我不是 SQL 大佬,但我不希望得到比你所拥有的更简单的东西。
  • 用这么多代码做这么少感觉太不对劲了。

标签: iphone sqlite timestamp unix-timestamp strftime


【解决方案1】:

您只想要今天的记录,还是今天之后的每一天的记录?

今天,就这样做吧:

select * from table where strftime('%Y-%m-%d', timestamp) = strftime('%Y-%m-%d', 'now')

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 2020-09-30
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多