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

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

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

sql
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 8
jiangjun

mysql 也有时间函数

1年前 评论
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') 后面是日期格式化的方式
1年前 评论
andyzu (楼主) 1年前
raybon (作者) 1年前

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

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

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