You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Strapi REST API筛选今日日期在start_date与end_date间的实体

实现今日日期落在start_date与end_date之间的实体筛选

核心逻辑很明确:只要确保今日日期大于等于start_date,同时小于等于end_date即可。下面分不同数据库给出具体查询语句,同时补充字符串日期字段的兼容写法:

各数据库原生写法(推荐,日期字段为DATE/DATETIME类型)

MySQL/MariaDB

用CURDATE()直接获取今日日期(不含时间部分):

SELECT * FROM 你的实体表名
WHERE start_date <= CURDATE()
  AND end_date >= CURDATE();

PostgreSQL

用CURRENT_DATE获取今日日期:

SELECT * FROM 你的实体表名
WHERE start_date <= CURRENT_DATE
  AND end_date >= CURRENT_DATE;

SQL Server

通过CAST(GETDATE() AS DATE)提取今日的日期部分(去掉时分秒):

SELECT * FROM 你的实体表名
WHERE start_date <= CAST(GETDATE() AS DATE)
  AND end_date >= CAST(GETDATE() AS DATE);

通用字符串日期兼容写法(日期字段为YYYY-MM-DD格式的字符串)

如果你的日期字段是字符串类型且严格遵循YYYY-MM-DD格式,直接用字符串比较即可(因为该格式的字典序和日期顺序一致):

SELECT * FROM 你的实体表名
WHERE start_date <= '2024-05-20' -- 这里替换为今日的YYYY-MM-DD格式字符串
  AND end_date >= '2024-05-20';

注意:建议在应用层动态生成今日的日期字符串,避免硬编码。

额外注意事项

  • 优先使用数据库原生的日期类型存储日期,比字符串类型查询效率更高,还能避免格式不规范的问题。
  • 如果涉及跨时区场景,建议统一使用UTC日期进行存储和查询,避免时区转换导致的筛选错误。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 13:57:41