DATETIME mulai DATETIME berakhir
Saya mohon Anda untuk menggunakan dua nilai DATETIME sebagai gantinya, diberi label seperti event_start dan event_end .
Waktu adalah urusan yang kompleks
Sebagian besar dunia sekarang telah mengadopsi sistem metrik berbasis pemandangan untuk sebagian besar pengukuran, benar atau salah. Ini bagus secara keseluruhan, karena setidaknya kita semua bisa sepakat bahwa ag, adalah ml, adalah cm kubik. Setidaknya kira-kira begitu. Sistem metrik memiliki banyak kekurangan, tetapi setidaknya secara internasional selalu cacat.
Namun seiring waktu, kami memiliki; 1000 milidetik dalam satu detik, 60 detik hingga satu menit, 60 menit hingga satu jam, 12 jam untuk setiap setengah hari, kira-kira 30 hari per bulan yang bervariasi menurut bulan dan bahkan tahun yang bersangkutan, setiap negara memiliki waktu yang berbeda dari yang lain , format waktu di setiap negara berbeda-beda.
Banyak yang harus dicerna, tetapi panjang dan pendeknya tidak mungkin skenario serumit itu memiliki solusi sederhana.
Beberapa sudut dapat dipotong, tetapi ada yang lebih bijaksana untuk tidak melakukannya
Meskipun jawaban teratas di sini menunjukkan bahwa Anda menyimpan bilangan bulat menit lewat tengah malam mungkin tampak masuk akal, saya telah belajar untuk menghindari melakukannya dengan cara yang sulit.
Alasan untuk menerapkan dua nilai DATETIME adalah untuk peningkatan akurasi, resolusi, dan umpan balik.
Ini semua sangat berguna ketika desain menghasilkan hasil yang tidak diinginkan.
Apakah saya menyimpan lebih banyak data dari yang dibutuhkan?
Awalnya mungkin tampak seperti lebih banyak informasi disimpan daripada yang saya butuhkan, tetapi ada alasan bagus untuk menerima serangan ini.
Menyimpan informasi tambahan ini hampir selalu menghemat waktu dan tenaga saya dalam jangka panjang, karena saya pasti menemukan bahwa ketika seseorang diberitahu berapa lama sesuatu berlangsung, mereka juga akan ingin tahu kapan dan di mana acara itu terjadi juga.
Itu adalah planet yang sangat besar
Di masa lalu, saya bersalah karena mengabaikan bahwa ada negara lain di planet ini selain negara saya. Sepertinya ide yang bagus pada saat itu, tetapi ini SELALU mengakibatkan masalah, sakit kepala, dan waktu yang terbuang di kemudian hari. SELALU pertimbangkan semua zona waktu.
C #
Sebuah DateTime merender dengan baik ke string di C #. Metode ToString (format string) ringkas dan mudah dibaca.
Misalnya
new TimeSpan(EventStart.Ticks - EventEnd.Ticks).ToString("h'h 'm'm 's's'")
Server SQL
Juga jika Anda membaca database Anda secara terpisah dari antarmuka aplikasi Anda, maka dateTimes menyenangkan untuk dibaca sekilas dan melakukan penghitungan pada mereka sangatlah mudah.
Misalnya
SELECT DATEDIFF(MINUTE, event_start, event_end)
Standar tanggal ISO8601
Jika menggunakan SQLite maka Anda tidak memiliki ini, jadi gunakan bidang Teks dan simpan dalam format ISO8601 mis.
"2013-01-27T12: 30: 00 + 0000"
Catatan:
Misalnya
TimeOffset=(±Longitude.24)/360
... dimana ± mengacu pada arah timur atau barat.
Oleh karena itu perlu dipertimbangkan apakah perlu menyimpan bujur, lintang dan ketinggian bersama dengan datanya. Ini akan bervariasi dalam penerapannya.
ISO8601 adalah format internasional.
Wiki sangat bagus untuk detail lebih lanjut di http://en.wikipedia.org/wiki/ISO_8601 .
Tanggal dan waktu disimpan dalam waktu internasional dan offset dicatat tergantung di mana di dunia waktu itu disimpan.
Menurut pengalaman saya, selalu ada kebutuhan untuk menyimpan tanggal dan waktu penuh, terlepas dari apakah saya pikir ada saat saya memulai proyek. ISO8601 adalah cara yang sangat bagus dan futureproof untuk melakukannya.
Saran tambahan gratis
Ada baiknya juga mengelompokkan acara bersama seperti sebuah rangkaian. Misalnya, jika merekam balapan, seluruh acara dapat dikelompokkan berdasarkan pembalap, sirkuit_balap, titik pemeriksaan sirkuit, dan sirkuit_lap.
Menurut pengalaman saya, adalah bijaksana juga untuk mengidentifikasi siapa yang menyimpan catatan tersebut. Baik sebagai tabel terpisah yang diisi melalui pemicu atau sebagai kolom tambahan dalam tabel asli.
Semakin banyak Anda memasukkan, semakin banyak Anda keluar
Saya sepenuhnya memahami keinginan untuk menjadi seefisien mungkin dengan ruang, tetapi saya jarang melakukannya dengan mengorbankan informasi yang hilang.
Aturan praktis dengan database adalah seperti judulnya, database hanya dapat memberi tahu Anda sebanyak yang ada datanya, dan bisa sangat mahal untuk kembali melalui data historis, mengisi celah.
Solusinya adalah memperbaikinya pertama kali. Ini tentu lebih mudah diucapkan daripada dilakukan, tetapi Anda sekarang harus memiliki wawasan yang lebih dalam tentang desain database yang efektif dan kemudian memiliki peluang yang jauh lebih baik untuk melakukannya dengan benar pada kali pertama.
Semakin baik desain awal Anda, semakin murah biaya perbaikannya nanti.
Saya hanya mengatakan semua ini, karena jika saya bisa kembali ke masa lalu maka itulah yang akan saya katakan pada diri saya sendiri ketika saya sampai di sana.