sql - PLSQL 中的时间戳过滤器
问题描述
假设我有一个表,其中包含用户对 IMDB 电影数据库等电影的评分。
ID | USER_REVIEW | 用户评分 | 用户身份 |
---|---|---|---|
1 | 蓝光 | 10 | 1 |
2 | 斑点 | 9 | 2 |
3 | 废话 | 7 | 3 |
这些表格插入是昨天拍摄的。id 为 1 和 2 的条目是在 16:00 到 16:10 之间拍摄的。id 为 3 的第三个条目是在 16:10 到 16:15 之间获取的 如何找到一个 select 语句来过滤我在 16:00 到 16:10 之间的前两个条目?或者是否有可能找出昨天插入的确切时间戳?
解决方案
是否可以找到昨天插入的确切时间戳?
当然,如果表中有时间戳列。
看起来好像这样的列不存在,添加它的简单选项是
alter table movies add date_insert date default sysdate;
Oracle 将自动填充该列SYSDATE
(除非您明确插入它),这意味着您当前的INSERT
语句保持“原样”,您不必稍微更改它。
然后你会 - 例如 - 选择昨天插入的行
select *
from movies
where trunc(date_insert) = trunc(sysdate - 1)
或者,如您所问,昨天(2021 年 8 月 10 日)16:00 到 16:10 之间插入的行:
select *
from movies
where date_insert between to_date('10.08.2021 16:00', 'dd.mm.yyyy hh24:mi')
and to_date('10.08.2021 16:10', 'dd.mm.yyyy hh24:mi')
推荐阅读
- flutter - 为什么 CustomSingleChildLayout 不能依赖于孩子的大小?
- swift - 如何使用标签显示正确的摘要
- uikit - “类型‘UIAlertController’没有成员‘样式’”
- android - 尝试添加网格布局时如何处理“发现现有项目依赖项不一致”的问题
- qt - 启动 QThread/QTimer 会使 qt/qml 应用程序在 Raspberry Pi 设备上使用 std::bad_alloc 崩溃
- c++ - 如果创建对象并为其赋值,转换构造函数会进行哪些转换?
- node.js - 是否可以在 nodejs 进程和 Electron 子进程之间进行通信?
- hashtable - 哈希表在数据库或服务器代码上实现在哪里?
- json - 显示从 http get 返回的 Json 数组
- python - 如何找到只有一个值的 Z 分数?