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

Kapan kami memilih DateTime daripada Timestamp

Seperti yang dikatakan dalam komentar, saya percaya ini sebagian besar tergantung pada preferensi pribadi. Di mata saya, penggunaan stempel waktu Unix dan antarmuka non-OOP "warisan" bukanlah cara untuk melakukannya di masa depan di dunia saat ini, misalnya, kami tidak (baca:tidak boleh) menggunakan INT tipe data di database kami untuk menyimpan tanggal dalam format Unix Timestamp, kami seharusnya menggunakan tipe asli database yang biasanya DATE atau DATETIME jenis yang bekerja sama dengan DateTime PHP objek (dan bahasa lain') hampir secara native dalam hal konversi standar.

Untuk menguraikan sedikit tentang apa yang saya maksud dengan konversi standar:Saat Anda menggunakan MySQL dan menarik kembali nilai ke PHP, Anda mendapatkan string tanggal berformat ISO, di antaranya DateTime class mem-parsing di konstruktornya memberi Anda objek yang langsung dapat digunakan. Sebaliknya, untuk pergi ke rute cap waktu Unix Anda harus menggunakan strtotime , lalu date untuk memasukkannya ke dalam format apa pun yang Anda inginkan secara asli.

Saya sebutkan sebelumnya tentang interop antara sistem PHP kami dan sistem .NET. Meskipun tidak ada masalah khusus yang disebabkan oleh penggunaan stempel waktu, itu bukan solusi praktis, karena sekali lagi, kami menggunakan database yang mengembalikan nilai DateTime yang dapat dikirim langsung ke pipa. Jika kita mengonversi ini ke cap waktu unix untuk digunakan secara internal di PHP, kita juga harus mengubahnya kembali jika kita ingin mengirim respons, atau mengirim respons ke Aplikasi .NET (atau haruskah saya mengatakan API dalam hal ini) itu adalah stempel waktu, dan mengubahnya di akhir. Dengan menggunakan DateTime secara keseluruhan, ini mengurangi kebutuhan untuk konversi apa pun yang terjadi dan seluruh proses pengembangan menjadi lebih mudah.

Akhirnya untuk menambahkan semua ini, seperti yang juga Anda sebutkan di posting Anda, Anda bisa menggunakan item mengkilap seperti DateInterval , pembagian waktu yang lebih mudah, manipulasi yang lebih mudah, dan pemformatan yang lebih mudah, dll. saat Anda menggunakan DateTime dan itu terkait mitra berorientasi objek dalam kejahatan. Ini hanya proses pengembangan yang lebih mudah di mata saya.

Saya tidak percaya karena saya awalnya mengatakan bahwa ada jawaban yang "benar" untuk ini, hanya lebih dari preferensi pribadi berdasarkan gaya pengkodean Anda sendiri, dan komentar di atas mencerminkan milik saya.

  • Saya tidak percaya begitu. Apalagi dengan skrip PHP yang umumnya merupakan proses yang berjalan singkat.

Iya :)

Lihat komentar di atas pada basis data, bukan "asli" untuk menggunakan Stempel Waktu Unix untuk tujuan ini IMO. Anda cukup menelepon ->getTimezone dan simpan ini di database, lalu gunakan ->setTimezone saat Anda menariknya kembali.



  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 bagaimana membuat nilai kedaluwarsa?

  2. Menggunakan Database Relasional MySQL di Fedora 20

  3. Contoh MySQL REGEXP

  4. Kembalikan Hanya Nilai Numerik di MySQL

  5. bagaimana cara mendapatkan laporan kesalahan terperinci ketika skrip php-mysql gagal?