Laravel 4 - 如何与Query Builder一起订购日期

时间:2014-02-13 09:26:16

标签: sql datetime laravel-4 query-builder

我有一个日期列表(expiry_at)

02-18-2014
02-13-2014
02-20-2014
02-15-2014

我想在这些日期使用OrderBy

结果:

02-13-2014
02-15-2014
02-18-2014
02-20-2014

我试过了:

DB::table('users')
        ->select('users.address', 'products.created_at', 'users.lat', 'users.lng',
            'users.name', 'users.email','products.photo', 'products.price', 'products.quantity',
            'users.tel', 'products.title', 'products.user_id', 'products.id',
            'products.description', 'products.expiry_at', 'users.email', 'users.photo as user_photo')
        ->join('products', 'users.id', '=', 'products.user_id')
        ->whereNull('shared_at')
        ->whereNull('deleted_at')
        ->orderBy('products.expiry_at', 'ASC')
        ->paginate(10);

但它命令:

02-15-2014
02-13-2014
02-18-2014
02-20-2014

为什么? 感谢

1 个答案:

答案 0 :(得分:-1)

嘿,你可以使用DB::Raw("DATE('product.expiry_at as expiry_at')","ASC")

DB::table('users')
    ->select('users.address', 'products.created_at', 'users.lat', 'users.lng',
        'users.name', 'users.email','products.photo', 'products.price', 'products.quantity',
        'users.tel', 'products.title', 'products.user_id', 'products.id',
        'products.description', 'products.expiry_at', 'users.email', 'users.photo as user_photo')
    ->join('products', 'users.id', '=', 'products.user_id')
    ->whereNull('shared_at')
    ->whereNull('deleted_at')
    ->orderBy("DATE('product.expiry_at as expiry_at')", 'ASC')
    ->paginate(10);

希望它有效!