Skip to content
Advertisement

Get the week start date and week end date from week number in raw query

!Get the week start date and week end date from week number in raw query #2 after group all ids in array

$test=DB::table('bookings')
->select([

     'bookings.organization_id',
     DB::raw('week(bookings.created_at) as week'), // this give me week number I need start date and end date starting date Sunday and end date Saturday 
     DB::raw('year(created_at) as year'),

the second after group by organization_id I need all booking id in array not string

// I try this but give like this "1,4,6,7,9"  I need ["1","4","6","7","9"]

DB::raw('group_concat(bookings.id) as bookings_id'), 

Advertisement

Answer

To get the start and end of week you can use this:

$test=DB::table('bookings')
->select([
'bookings.organization_id',
  DB::raw('DATE(bookings.created_at   + INTERVAL (1 - DAYOFWEEK(bookings.created_at)) DAY) as start_date'),
  DB::raw('DATE(bookings.created_at + INTERVAL (7 - DAYOFWEEK(bookings.created_at)) DAY) as end_date')
])
->get();

And for second question:

MySQL does not have concept of array type for data.

You need to explode the data into an array, using php code like this:

$bookingsIds = explode(',', $test->bookings_id);
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement