Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Stempel waktu Laravel untuk ditampilkan dalam milidetik

Anda tidak bisa karena driver PHP PDO tidak mendukung pecahan detik dalam stempel waktu. Solusinya adalah memilih stempel waktu sebagai string sehingga driver PDO tidak tahu stempel waktu yang sebenarnya, cukup dengan melakukan $query->selectRaw(DB::raw("CONCAT(my_date_column) as my_date_column")) namun ini berarti Anda tidak dapat menggunakan pemilihan default untuk semua bidang sehingga kueri menjadi sangat merepotkan. Anda juga perlu mengganti getDateFormat pada model.

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

Akhirnya dalam migrasi Anda daripada nullableTimestamps, di luar callback Skema lakukan:

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

Perhatikan contoh ini untuk 3 tempat desimal namun Anda dapat memiliki hingga 6 jika Anda suka, dengan mengubah 3 menjadi 6 di dua tempat, di tabel alter dan di sprintf dan juga menyesuaikan pengali * 1000 hingga 1000000 untuk 6.

Mudah-mudahan suatu hari PHP PDO akan diperbarui untuk memperbaikinya, tetapi sudah lebih dari 5 tahun dan tidak ada yang berubah jadi saya tidak terlalu berharap. Jika Anda tertarik dengan detailnya, lihat laporan bug ini:http://grokbase.com/t/php/php-bugs/11524dvh68/php-bug-bug-54648-new-pdo-forces-format -of-datetime-fields Saya menemukan tautan itu di jawaban lain ini yang mungkin membantu Anda lebih memahami masalah ini:https://stackoverflow. com/a/22999991/259521

PHP benar-benar menunjukkan usianya akhir-akhir ini, dan saya akan menganggap masalah ini sebagai salah satu alasan saya untuk mempertimbangkan pindah ke Node.js yang lebih modern.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memperbarui set id dari 1?

  2. Dari perspektif kinerja, seberapa efisien menggunakan tabel sementara MySQL untuk fitur situs web yang sangat sering digunakan?

  3. Hubungkan MySQL ke aplikasi Spring

  4. MySQL membuat waktu dan memperbarui stempel waktu

  5. Pilih data di antara dua tanggal?