-4

我是 Laravel 的菜鸟。谁能帮我用雄辩的语言写这个查询

SELECT
    *
FROM
    table
WHERE
    (
        STR_TO_DATE(`date`, '%m/%d/%Y') BETWEEN '2014-08-05'
        AND '2014-08-05'
    )

ORDER BY
    id
4

3 回答 3

2

假设你的模型被调用Table,如果你的字段是 type DATE,你可以这样做:

Table::where('date', '>=', '2014-08-05')
    ->where('date', '=<', '2014-08-05')
    ->get();

或者,您可以这样做:

Table::select('table.*', DB::raw("STR_TO_DATE(date, '%m/%d/%Y') as date_format"))
    ->where('date_format', '>=', '2014-08-05')
    ->where('date_format', '=<', '2014-08-05')
    ->get();
于 2014-08-07T23:15:45.870 回答
2

如果您想按原样使用查询,只需使用 DB::raw

http://laravel.com/docs/queries#raw-expressions

DB::raw(SELECT * FROM table WHERE ( STR_TO_DATE(date, '%m/%d/%Y') BETWEEN '2014-08-05' AND '2014-08-05' ) ORDER BY id);
于 2014-08-07T23:10:35.023 回答
0

你可以试试这个:

$from = '...';
$to = '...';

DB::table('table')->whereBetween('date', array($from, $to))->get();

或使用雄辩:

ModelName::whereBetween('date', array($from, $to))->get();
于 2014-08-08T01:37:28.243 回答