java - 检查日期是否在两个日期之间 : time stamp (milliseconds)

标签 java android sqlite android-sqlite

我在数据库中有 start_timeend_time 列,其中包含毫秒值。

start_time > 2018 年 2 月 14 日星期三 11:00:00(真实日期)= 1518586200000 (数据库值)

现在我想要特定日期的所有记录以及持续时间。

例如。日期:2018年2月14日

案例1:

Start Time : 14/02/2018 11:00 AM
End Time : 14/02/2018 11:30 AM
Result : Appear (30 min)

情况2:

Start Time : 13/02/2018 11:00 AM (start date change)
End Time : 14/02/2018 11:30 AM
Result : Appear (11 hour 30 min)

情况3:

Start Time : 14/02/2018 11:00 AM
End Time : 15/02/2018 11:30 AM (end date change)
Result : Appear (13 hour)

情况4:

Start Time : 13/02/2018 11:00 AM (start date change)
End Time : 16/02/2018 11:30 AM (end date change)
Result : Appear (24 hour)

是否可以使用sqlite查询获取所有记录?

注意:我不想比较当前时间,我想要在所有持续时间内都按日期进行。

最佳答案

使用

  input date = 14/02/2018;

使用以下变量beginning_of_dayend_of_day

  // beginning_of_day indicates first hour of input_date
  beginning_of_day = 14/02/2018 00:00 a.m. // in millisecond format
  // end_of_day indicates end hour of input_date (or) the first hour of next valid date of input_date
  end_of_day = 15/02/2018 00:00 a.m.  // in millisecond format

然后你可以使用下面的where子句;

WHERE NOT ((start_time<beginning_of_day AND end_time<beginning_of_day) OR (start_time>end_of_day AND end_time>end_of_day))

关于java - 检查日期是否在两个日期之间 : time stamp (milliseconds),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48787531/

相关文章:

android - 来自 Android 设备的 Web 服务调用不起作用,在模拟器上运行良好

android - context.getApplicationInfo().name 始终为空

database - 手机间隙 : WebSql or SqLite?

c++ - 无法执行 sqlite SQL 文件来创建数据库

java - 我的 Bitset 的大小是多少?

android - 在 ScrollView 的中心放置一个 block

java - 在字符串数组中搜索字符串

android - 将现有的 sqlite 数据库与 android ADT 结合使用

java - libGDX Sprite 缓存 : transparency on images not displayed properly

java - 将相对布局中的中心 View 与相对布局之外的另一个 View 对齐