Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel времеви марки за показване на милисекунди

Не можете, защото PHP PDO драйверът не поддържа частични секунди в времеви печати. Заобикалянето е вместо това да изберете клеймото за време като низ, така че PDO драйверът да не знае, че всъщност е времеви печат, просто като направите $query->selectRaw(DB::raw("CONCAT(my_date_column) as my_date_column")) това обаче означава, че не можете да използвате избора по подразбиране за всички полета, така че заявката се превръща в истинска болка. Също така трябва да замените getDateFormat на модела.

// override to include micro seconds when dates are put into mysql.
protected function getDateFormat()
{
    return 'Y-m-d H:i:s.u';
}

Накрая във вашата миграция, а не nullableTimestamps, извън обратното извикване на схемата направете:

DB::statement("ALTER TABLE `$tableName` ADD COLUMN created_at TIMESTAMP(3) NULL");

Обърнете внимание, че този пример беше за 3 знака след десетичната запетая, но можете да имате до 6, ако желаете, като промените 3 на 6 на две места, в таблицата за промяна и в sprintf и също така коригирате множителя * 1000 до 1000000 за 6.

Надяваме се някой ден PHP PDO да бъде актуализиран, за да поправи това, но са минали повече от 5 години и нищо не се е променило, така че нямам надежди. В случай, че се интересувате от подробности, вижте този доклад за грешка:http://grokbase.com/t/php/php-bugs/11524dvh68/php-bug-bug-54648-new-pdo-forces-format -полета на дата и час Намерих тази връзка в този друг отговор, която може да ви помогне да разберете по-добре проблема:https://stackoverflow. com/a/22990991/259521

PHP наистина показва възрастта си напоследък и бих смятал този проблем за една от причините да обмисля преминаване към по-модерния Node.js.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Правилата за сигурност при наследяване са нарушени от тип:'MySql.Data.Entity.MySqlEFConfiguration'

  2. Примери за връзки много към много

  3. Индексът за решаване за потребител на таблица е повреден; опитайте се да го поправите

  4. Има ли начин да знаете текущото си потребителско име в mysql?

  5. Предупреждение:mysqli_query():Не можа да извлече mysqli