Laravel получить микротим из базы данных

В базе данных MySQL поле datetime хранится так:

2015-05-12 13:58:25.000508

Но когда я выполняю этот запрос, например:

    $query = SdkEvent::with('sdkEventStack');

if (isset($params['CO_ID']) && $params['CO_ID'] != "") {
$query->where('CO_ID', $params['CO_ID']);
}

if (isset($params['APP_ID']) && $params['APP_ID'] != "") {
$query->where('APP_ID', $params['APP_ID']);
}

if (isset($params['app_ip']) && $params['app_ip'] != "") {
$query->where('SDKEVENT_IP', 'LIKE', $params['app_ip'].'%');
}

if (isset($params['PLACE_ID']) && $params['PLACE_ID'] != "") {
$query->where('PLACEMENT_ID', $params['PLACE_ID']);
}

$sdks = $query->get();

Я получаю дату и время так: 2015-05-12 13:58:25
Почему я не получаю микросекунды?

7

Решение

Это не проблема Laravel, это проблема PDO, которую Laravel использует для выполнения запросов к базе данных.

Для получения дополнительной информации см этот другой вопрос: PHP Как вернуть datetime (6) из Mysql?

или фактический отчет об ошибке

http://grokbase.com/t/php/php-bugs/11524dvh68/php-bug-bug-54648-new-pdo-forces-format-of-datetime-fields

Вы можете тянуть микросекунды с помощью DB::select() заявление. Например:

$test = DB::select("SELECT id, DATE_FORMAT(date, '%Y-%m-%d %H:%i:%f') as date FROM test");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]