当前位置: 首页 > 知识库问答 >
问题:

SQL本机查询以获取日期在X中到期的对象列表

东门深
2023-03-14

我有一些“卡片”对象:

@Entity
@Table(name = "card", schema = "public")
@Data
@EqualsAndHashCode(callSuper = false)
public class Card  {
    @Id
    @GeneratedValue
    private Long id;
    
    @Column(name="name")
    private String name;

    @Column(name="scope_time_limit")
    private LocalDateTime expireDate;
}

我想准备一些本机查询,在那里我可以根据我指定的日期获得过期卡片的列表。我有这个方法

 List<Card> getExpiringCards(Integer numberOfDaysToExpiringCard) {
        return cardRepository.getExpiringCardsByDay(numberOfDaysToExpiringAgreement);
    }

最理想的查询是什么?我在考虑本机查询。

提前谢谢。

共有1个答案

平嘉熙
2023-03-14

您缺乏一些关于您正在使用什么以及如何访问数据库等的详细信息。然而,我想展示一个使用Spring Data的示例,只是为了粗略的想法。

您的存储库:

public interface CardRepository extends JpaRepository<Card, Integer> {
   List<Card> findByExpireDateAfter(LocalDateTime expireDate);
}

在您服务的某处或您使用它的任何地方:

  @Autowired
  CardRepository cardRepository;  

  List<Card> getCardsWillBeExpiredInDays(int days) {
    LocalDateTime someDaysLater = LocalDateTime.now().plusDays(days);
    return cardRepository.findByCreatedAfter(someDaysLater);
  }
 类似资料:
  • 问题内容: 如果我有一个表列,,, 并且我想运行一个sql查询以获取数据集中最早的记录。 您可以在查询中执行此操作,还是需要在事实之后循环? 我想获取该记录的所有字段。 问题答案: 如果您只想要日期: 如果您需要所有信息: 尽可能避免循环。循环通常会导致游标,游标几乎从来没有必要,而且常常效率很低。

  • 我有三个表,分别名为device_table、playlist_table和device_playlist_assoc device_playlist_assoc表用于将设备与播放列表相关联。 device_table playlist_table Device_PlayList_Assoc 所以,我想要的是那些没有播放列表的设备。我只从前端获得playlist_id作为参数。所以我想要一个sql

  • 你好,我有两列日期时间的多行,我想获取所有记录的两列之间的最新日期(最高)的行。请查看以下内容: 我想从两列(Date1和Date2)的所有记录中获取最高日期。从上表中,我想要第三行日期,因为这是两列所有记录中的最高日期(2021-06-16 20:04:24)。如果我们在2021-06-16 09:20:41之前更改date1列第3行,那么结果将是第2行,因为在date2中找到了最高日期记录。请

  • 问题内容: 我想100天前从13年4月8日开始作为日期。 如何使用pl / sql执行此操作? 问题答案: 假设情况是您所处的字符串。因此,您需要将其转换为using函数,然后简单地减去100个文字。 的SQL 2 from dual 3 / RES 29-12-2012 PL / SQL 2 l_res_date date; 3 l_in_date varchar2(11) := ‘08-APR

  • 我对Oracle SQL中的以下查询有疑问: 当我运行它时,结果如下所示:2015年11月10日。根据我在Oracle文档中读到的内容,YYYY应该转换为4位数的年份,但它转换为2位数的年份。为什么会这样?

  • 问题内容: 我需要显示一张表中的日期列表 2010年1月1日-2010年1 月2日-2010年1 月10日-1 没问题。但是,我现在需要使用不同的DateType显示之前的日期和之后的日期。 2009年12月31日- 2010年1月1日-2010年1 月2日-2010年1 月3日- 2010年1月2日- 2010年1月2日- 2010年1 月10日-2010年1 月11日-2 我以为我可以用工会