MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Berurusan dengan bagaimana MongoDB menyimpan DateTime saat digunakan dengan Pola Pencari Layanan

Mengapa Anda tidak menyimpan UTC di DB sejak awal? Dalam kebanyakan kasus, DateTime harus disimpan dalam UTC, karena biasanya mengacu pada suatu titik waktu. Ini berlaku untuk apa pun yang mengacu pada waktu dalam pengertian fisik, dan apa pun yang menganggap waktu itu monoton, meningkat, dan unik, tidak ada yang benar untuk sebagian besar waktu setempat.

Kadang-kadang, menggunakan waktu setempat memang masuk akal:misalkan bus berangkat setiap hari pukul 9 pagi. Ini berarti bahwa 24 jam berlalu di antara dua peristiwa berturut-turut. Namun, jika zona waktu memiliki DST, itu akan menjadi interval 23 jam, masing-masing 25 jam setahun sekali.

Namun, jika Anda perlu memperdebatkan data semacam ini, DateTime sederhana tidak berhasil; Aturan DST dapat berubah, zona waktu dapat berubah, dll. Dalam C#, aturan DST yang akan diterapkan adalah yang saat ini valid, bahkan jika tanggalnya 'bersejarah'. Aritmatika tanggal dengan tanggal bersejarah dapat mendatangkan malapetaka. Jika Anda benar-benar perlu mengatasi ini, paling tidak, Anda harus menyimpan yang zona waktu saat ini (tidak hanya offset, atau bahkan hanya isLocal bendera).

Menyimpan informasi tekstual dalam database yang dapat disimpan biner tampaknya tidak terlalu elegan bagi saya, juga tidak mengubah nilai di beberapa lapisan tengah. Yang pertama tidak efisien dan menderita kekhasan waktu lokal yang disebutkan sebelumnya, yang terakhir hanya memiliki masalah ke-2.

BTW, untuk mencapai yang terakhir, Anda dapat mendekorasi properti dengan [BsonDateTimeOptions(Kind=DateTimeKind.Local)] , yang akan melakukan konversi untuk Anda, tetapi tentu saja mengalami masalah yang sama.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. CRUD nodejs/server ekspres:app.put req.body kosong

  2. Bagaimana cara menyimpan Tanggal dan Waktu di Meteor untuk kueri rentang?

  3. Mendeteksi Apakah Nilai Berisi Setidaknya Satu Digit Numerik dalam SQL

  4. Bagaimana cara membungkus axios.get beberapa hasil respons ke dalam satu larik?

  5. MongoDB:masukkan pada pembaruan kunci duplikat