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

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

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

sql
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《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年前

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