我和优雅的写出一个 unix时间戳 和 日期 比较大小的 sql ?

我的表结构:
Laravel
里面有一个 expires_time 字段是存的 unix 时间戳。
我现在要获取所有没有过期的数据(即:unix 时间戳 要大于 created_at 里的日期)。

如何用一条 laravel 的查询构造器 来解决?
如果不行,那就用一条原生 sql ?
如果还不行,那把 expires_time 字段的格式改成 DATETIME 类型呢,如何用一条 laravel 的查询构造器 来写?

sql
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8
jiangjun

mysql 也有时间函数

2年前 评论
SELECT * from test where UNIX_TIMESTAMP('2023-01-16') < delay_at

里面主要有两个函数:

  1. 一个是日期格式转时间戳用的是: UNIX_TIMESTAMP('%date')
  2. 另一个是 时间戳转日期格式:FROM_UNIXTIME(1673832050, '%Y-%m-%d %h:%i:%s') 后面是日期格式化的方式
2年前 评论
andyzu (楼主) 2年前
raybon (作者) 2年前

是否过期不应该是过期时间和当前时间比较吗?为什么是和创建时间比较

2年前 评论
andyzu (楼主) 2年前
随波逐流
DB::table('test')->whereRaw("expires_time < UNIX_TIMESTAMP(created_at)")->get();
2年前 评论
andyzu (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!