Kenapa 1753? Apa yang mereka miliki melawan 1752? Kakek buyut buyut buyut buyut akan sangat tersinggung.
Kenapa 1753? Apa yang mereka miliki melawan 1752? Kakek buyut buyut buyut buyut akan sangat tersinggung.
Keputusan untuk menggunakan 1 Januari 1753 ( 1753-01-01
) sebagai nilai tanggal minimum untuk datetime di SQL Server kembali ke asal Sybase -nya .
Signifikansi tanggal itu sendiri dapat dikaitkan dengan pria ini.
Philip Stanhope, Earl of Chesterfield ke-4. Yang mengarahkan Undang-Undang Kalender (Gaya Baru) 1750 melalui Parlemen Inggris. Ini disahkan untuk adopsi kalender Gregorian untuk Inggris dan koloni-koloni saat itu.
Ada beberapa hari yang hilang (tautan arsip internet) di kalender Inggris pada 1752 ketika penyesuaian akhirnya dibuat dari kalender Julian. 3 September 1752 hingga 13 September 1752 hilang.
Kalen Delaney menjelaskan pilihan ini
Jadi, dengan 12 hari hilang, bagaimana Anda bisa menghitung tanggal? Misalnya, bagaimana Anda dapat menghitung jumlah hari antara 12 Oktober 1492, dan 4 Juli 1776? Apakah Anda termasuk yang hilang 12 hari? Untuk menghindari penyelesaian masalah ini, pengembang Sybase SQL Server asli memutuskan untuk tidak mengizinkan tanggal sebelum 1753. Anda dapat menyimpan tanggal sebelumnya dengan menggunakan bidang karakter, tetapi Anda tidak dapat menggunakan fungsi waktu apa pun dengan tanggal sebelumnya yang Anda simpan dalam karakter bidang.
Pilihan 1753 tampaknya agak anglosentris namun karena banyak negara Katolik di Eropa telah menggunakan kalender selama 170 tahun sebelum pelaksanaan Inggris (awalnya tertunda karena ditentang oleh gereja ). Sebaliknya banyak negara tidak memperbarui kalender mereka sampai kemudian, 1918 di Rusia. Memang Revolusi Oktober 1917 dimulai pada 7 November di bawah kalender Gregorian.
Baik datetime
dan datetime2
tipe data baru yang disebutkan dalam jawaban Joe tidak berusaha menjelaskan perbedaan lokal ini dan cukup menggunakan Kalender Gregorian.
Jadi dengan rentang yang lebih besar datetime2
SELECT CONVERT(VARCHAR, DATEADD(DAY,-5,CAST('1752-09-13' AS DATETIME2)),100)
Kembali
Sep 8 1752 12:00AM
Satu poin terakhir dengan datetime2
tipe data adalah bahwa ia menggunakan kalender Gregorian yang diproyeksikan diproyeksikan mundur jauh sebelum itu sebenarnya diciptakan sehingga penggunaannya terbatas dalam berurusan dengan tanggal bersejarah.
Ini kontras dengan implementasi Perangkat Lunak lain seperti kelas Kalender Java Gregorian yang secara default mengikuti Kalender Julian untuk tanggal hingga 4 Oktober 1582 kemudian melompat ke 15 Oktober 1582 dalam kalender Gregorian baru. Itu benar menangani model Julian tahun kabisat sebelum tanggal itu dan model Gregorian setelah tanggal itu. Tanggal cutover dapat diubah oleh penelepon dengan menelepon setGregorianChange()
.
Artikel yang cukup menghibur membahas beberapa kekhasan dengan adopsi kalender dapat ditemukan di sini .
Kakek buyut buyut buyutnya harus ditingkatkan ke SQL Server 2008 dan menggunakan tipe data DateTime2 , yang mendukung tanggal dalam kisaran: 0001-01-01 hingga 9999-12-31.
sumber
1752 adalah tahun Inggris beralih dari Julian ke kalender Gregorian. Saya percaya dua minggu pada bulan September 1752 tidak pernah terjadi sebagai hasilnya, yang berimplikasi pada tanggal di wilayah umum itu.
Penjelasan: http://uneasysilence.com/archive/2007/08/12008/ ( versi Internet Archive )
sumber
Ini adalah keseluruhan cerita bagaimana masalah tanggal dan bagaimana DBMS Besar menangani masalah ini.
Sumber 1 dan 2
sumber
Secara kebetulan, Windows tidak lagi tahu cara mengkonversi UTC ke waktu lokal AS dengan benar untuk tanggal tertentu di bulan Maret / April atau Oktober / November tahun-tahun sebelumnya. Stempel waktu berbasis UTC dari tanggal-tanggal tersebut sekarang agak tidak masuk akal. Akan sangat menjengkelkan bagi OS untuk menolak menangani stempel waktu sebelum peraturan DST terbaru dari pemerintah AS, jadi itu hanya salah menangani sebagian dari mereka. SQL Server menolak untuk memproses tanggal sebelum 1753 karena banyak logika khusus ekstra diperlukan untuk menanganinya dengan benar dan tidak ingin menanganinya salah.
sumber