Php 需要Laravel中whereHour命令的等效项(不存在)
我使用以下SQL查询返回一组数据(即将到来的会话): 这将返回我需要的数据(提前24小时将要进行的会话),但我很难将其转换为一种格式,以便在Laravel中返回相同的数据(使用5.3) 我有一个开始:Php 需要Laravel中whereHour命令的等效项(不存在),php,mysql,laravel-5,eloquent,Php,Mysql,Laravel 5,Eloquent,我使用以下SQL查询返回一组数据(即将到来的会话): 这将返回我需要的数据(提前24小时将要进行的会话),但我很难将其转换为一种格式,以便在Laravel中返回相同的数据(使用5.3) 我有一个开始: $UpcomingSessions = Availability::where('name', '=', 'booked') ->where("start_time",">=", '(DATE_ADD(NOW(), INTERVAL 1 DAY))') ->whereDay("s
$UpcomingSessions = Availability::where('name', '=', 'booked')
->where("start_time",">=", '(DATE_ADD(NOW(), INTERVAL 1 DAY))')
->whereDay("start_time",">=", '(DAY(DATE_ADD(NOW(), INTERVAL 1 DAY)))')
->where("start_time",">=", '(DATE_SUB(NOW(),INTERVAL 1 HOUR))')
->get();
但我不知道如何处理小时部分,因为没有
whereHour
在拉雷维尔
如果我尝试:
->where("HOUR(start_time)",">=", '(HOUR(DATE_ADD(NOW(), INTERVAL 1 DAY)))')
我得到以下信息:
未找到列:“where子句”中的1054未知列“小时(开始时间)”
有没有一个我可以使用的等效命令?任何关于如何正确格式化SQL的想法都将非常好 嘿,如果你想用 或
嘿,如果你尝试使用 或 这里是拉威尔8.x 文档中有一个
whereTime()
函数
$users = DB::table('users')
->whereTime('created_at', '=', '11:20:45')
->get();
作为第二个参数给出的值可以是任何格式化的字符串。例如,您可以将其缩小到2whereTime()
调用:
$users = DB::table('users')
->whereTime('created_at', '>=', '11:00:00')
->whereTime('created_at', '<', '12:00:00')
->get();
$users=DB::table('users'))
->whereTime('created_at','>=','11:00:00')
->whereTime('created_at','p>Laravel 8.x此处
文档中有一个whereTime()
函数
$users = DB::table('users')
->whereTime('created_at', '=', '11:20:45')
->get();
作为第二个参数给出的值可以是任何格式化的字符串。因此,例如,您可以将其缩小到2whereTime()
调用:
$users = DB::table('users')
->whereTime('created_at', '>=', '11:00:00')
->whereTime('created_at', '<', '12:00:00')
->get();
$users=DB::table('users'))
->whereTime('created_at','>=','11:00:00')
->whereTime('created_at','Thank,whereRaw正在做这项工作。Thank,whereRaw正在做这项工作。在尝试和测试之后,发现时间字符串必须有两位数的小时数,否则在检查一个小时(如1)时,它将得到所有的1个前导小时,以此类推为2。因此,如果插入一个变量(如“$hour:00:00”
,使用sprint()
函数会更好更安全。例如->whereTime('created_at','>=',sprintf(“%02d:00:00,$hour))
和->whereTime('created_at','在尝试和测试之后,发现时间字符串必须有2位数字表示小时,否则在检查1等小时时,它将获得所有1个前导小时,以此类推表示2。因此,如果插入一个变量,如“$hour:00:00”
,使用sprint()会更好、更安全
函数。例如->whereTime('created_at','>=',sprintf(%02d:00:00,$hour))
和->whereTime('created_at','
$users = DB::table('users')
->whereTime('created_at', '>=', '11:00:00')
->whereTime('created_at', '<', '12:00:00')
->get();