Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Ajvanho's avatar
Level 14

How to get only date from created_at (datetime)

I need only date from created_at column for DB RAW query:

$orders = DB::select('SELECT created_at as stat_day, SUM(billing_totalprice) from Orders GROUP BY created_at order by stat_day;');

0 likes
7 replies
kalemdzievski's avatar
Level 6

Try using the DATE() function to extract the date from datetime. If you are using MySQL.

$orders = DB::select('SELECT DATE(created_at) as stat_day, SUM(billing_totalprice) from Orders GROUP BY DATE(created_at) ORDER BY stat_day;');
1 like
Ajvanho's avatar
Level 14

This is same method as mine. ´´´ $orders = DB::select('SELECT DATE(created_at) as stat_day, SUM(billing_totalprice) from Orders GROUP BY DATE(created_at) ORDER BY stat_day;');

Ajvanho's avatar
Level 14

Yes, I use mysql. The problem is that, I am using raw expression, so I can't enter a $variable. I must do some sql function.

Snapey's avatar

why struggle with raw queries?

1 like
Ajvanho's avatar
Level 14

Don't ask me :) I've been struggling with this for a month. In the end, I decided to write a raw sql.

Ajvanho's avatar
Level 14

Ok, this is what i want. Thank you KALEMDZIEVSKI :)

1 like
Emokores's avatar

The shorter method could be this for Laravel 8+:


$orders = Order::groupByRaw('DATE(created_at) AS stat_day')
       ->selectRaw('DATE(created_at) AS stat_day, SUM(billing_totalprice) AS total_price')
       ->get()

Please or to participate in this conversation.