douweng7233 2019-06-11 05:30
浏览 69

向MySQL表格列时间戳Laravel添加了错误的小时数

I need to get 3 types of records in order to send reminders to those ones, first I need to send reminders after 24 hours that the records were created, then after 48 hours and finally after 72 hours.

I have done this so far but it doesn't seem to work properly because, assume that a record was created at 2019-06-10 19:00:00 when the current day turns to 2019-07-10 00:01:00 it seems to consider as if 24 hours have already passed:

$fecha_hoy = Carbon::now();
$solicitudes_24 = SolicitudUser::whereDate(DB::raw('DATE_ADD(created_at, INTERVAL 24 HOUR)'), '<', $fecha_hoy)
                        ->whereDate(DB::raw('DATE_ADD(created_at, INTERVAL 48 HOUR)'), '>', $fecha_hoy)
                        ->whereNull('recordatorio_estado')
                        ->whereHas('curso', function($query){
                            $query->whereHas('operativo', function ($q){
                                $q->whereDate('dateOfertaAcademicaOperativoFechaRegistroFin', '>', Carbon::now());
                            });
                        })
                        ->where(function($query){
                            $query->where('registro_completo', 0)
                                ->orWhereNull('registro_completo');
                        })
                        ->get();

$solicitudes_48 = SolicitudUser::whereDate(DB::raw('DATE_ADD(tblusersSolicitudes.created_at, INTERVAL 48 HOUR)'), '<', $fecha_hoy)
                        ->whereDate(DB::raw('DATE_ADD(tblusersSolicitudes.created_at, INTERVAL 72 HOUR)'), '>', $fecha_hoy)
                        ->where(function($query){
                            $query->where('recordatorio_estado', 1)
                                    ->orWhereNull('recordatorio_estado');
                        })
                        ->whereHas('curso', function($query){
                            $query->whereHas('operativo', function ($q){
                                $q->whereDate('dateOfertaAcademicaOperativoFechaRegistroFin', '>', Carbon::now());
                            });
                        })
                        ->where(function($query){
                            $query->where('registro_completo', 0)
                                ->orWhereNull('registro_completo');
                        })
                        ->get();

$solicitudes_72 = SolicitudUser::whereDate(DB::raw('DATE_ADD(tblusersSolicitudes.created_at, INTERVAL 72 HOUR)'), '<', $fecha_hoy)
                        ->where(function($query){
                            $query->where('recordatorio_estado', 2)
                                    ->orWhereNull('recordatorio_estado');
                        })
                        ->whereHas('curso', function($query){
                            $query->whereHas('operativo', function ($q){
                                $q->whereDate('dateOfertaAcademicaOperativoFechaRegistroFin', '>', Carbon::now());
                            });
                        })
                        ->where(function($query){
                            $query->where('registro_completo', 0)
                                ->orWhereNull('registro_completo');
                        })
                        ->get();

How can I solve this?

PD. You can ignore the rest of the query chain that doesn't involve the dates.

  • 写回答

1条回答 默认 最新

  • douhaoqiao9304 2019-06-11 06:20
    关注

    May be it because of you used whereDate. The whereDate method may be used to compare a column's value against a date. reference: https://laravel.com/docs/5.8/queries -> whereDate. I think you should use only where Instead of whereDate. That will give you the current output.

    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测