sql - 查询根据文件名上的时间戳获取过去 24 小时内收到的记录
问题描述
我正在使用 SQL 专业版。我想从表中获取过去 24 小时内收到的记录。让我们考虑表名 = INVENTORY,包含 4 列,COL1、COL2、COL3 和 File_Name。表中没有任何日期列。但 File_Name 列将始终包含 ABC_03_20180412_053028.txt 格式的数据。(ABC_03_YYYYMMDD_HHMMSS.txt)。我想知道如何使用文件名中的日期和时间来获取过去 24 小时内收到的表的记录。
解决方案
您将提取字符串并转换为日期。这取决于数据库,但我猜你正在使用 MySQL。如果,你可以str_to_date()
这样使用:
str_to_date(substring(filename, 7, 15), '%Y%m%d_%h%i%s')
最近 24 小时的比较是:
str_to_date(substring(filename, 7, 15), '%Y%m%d_%h%i%s') >= now() - interval 24 hour and
str_to_date(substring(filename, 7, 15), '%Y%m%d_%h%i%s') < now()
第二部分可能不是必需的,因为文件可能没有未来的日期。
推荐阅读
- python - python cv2 puttext - 显示变量时出错
- jquery - 将应用程序放入存储过程?
- google-apps-script - 命令 .removeEditors 不会删除所有编辑器
- python - 从同一网络上的另一台计算机(烧瓶 python 服务器)访问 localhost?
- python - 在 AVAudioPlayer,iOS 中从 UDP 套接字播放 int16 pyaudio bytearray
- reactjs - 暴露静态引用的嵌套反应钩子
- r - 仅显示每 N 天的数据标签,并在 R ggplot 中突出显示特定变量的一行
- python - 将字典传递到 SQLAlchemy 选择语句的 where 子句
- django - 同一视图django中的多个查询模型
- excel - 具有路径的特定部分作为变量的 Excel vba 函数