SQL Server における 1/1/1753 の意味は何ですか? 質問する

SQL Server における 1/1/1753 の意味は何ですか? 質問する

なぜ 1753 年なのでしょう? 彼らは 1752 年に何の恨みがあるのでしょう? 私の高祖父高祖父高祖父は、非常に怒るでしょう。

ベストアンサー1

1753-01-01SQL Serverのdatetimeの最小日付値として1753年1月1日()を使用するという決定は、Sybaseの起源

しかし、この日付自体の重要性はこの男に帰せられる。

第4代チェスターフィールド伯爵フィリップ・スタンホープ

フィリップ・スタンホープ、第4代チェスターフィールド伯爵。暦(新様式)法 1750英国議会を通じて。これにより、英国と当時の植民地でグレゴリオ暦を採用することが法律で定められました。

いくつかありました失われた日々(インターネットアーカイブリンク)1752年にユリウス暦からの調整が最終的に行われたとき、イギリス暦では1752年9月3日から1752年9月13日までが失われました。

カレン・デラニー説明この選択

では、12 日が失われた場合、日付をどのように計算すればよいのでしょうか。たとえば、1492 年 10 月 12 日から 1776 年 7 月 4 日までの日数をどのように計算すればよいのでしょうか。失われた 12 日も含めるのでしょうか。この問題を解決する必要がないように、元の Sybase SQL Server 開発者は、1753 年より前の日付を許可しないことに決めました。文字フィールドを使用して以前の日付を保存できますが、文字フィールドに保存した以前の日付で datetime 関数を使用することはできません。

しかし、1753年の選択は、やや英国中心主義的であるように思われる。多くのカトリック国ヨーロッパではイギリスが導入する以前から170年間この暦が使われていた(当初は反対により延期された)。教会によって逆に、多くの国ではずっと後になってから、ロシアでは 1918 年まで暦を改正しませんでした。実際、1917 年の十月革命はグレゴリオ暦では 11 月 7 日に始まりました。

両方と、で言及したdatetime新しいデータ型datetime2ジョーの答えこうした地域的な違いを考慮せず、単にグレゴリオ暦を使用します。

より広い範囲でdatetime2

SELECT CONVERT(VARCHAR, DATEADD(DAY,-5,CAST('1752-09-13' AS DATETIME2)),100)

戻り値

Sep  8 1752 12:00AM

このデータ型の最後のポイントdatetime2は、先発グレゴリオ暦実際に発明されるずっと前に遡って予測されるため、歴史的な日付を扱う際には限られた用途しかありません。

これはJavaなどの他のソフトウェア実装とは対照的です。グレゴリオ暦このクラスは、1582 年 10 月 4 日まではデフォルトでユリウス暦に従い、その後は新しいグレゴリオ暦の 1582 年 10 月 15 日にジャンプします。このクラスは、その日付より前の閏年のユリウス暦モデルと、その日付以降のグレゴリオ暦モデルを正しく処理します。切り替え日は、呼び出し元が を呼び出すことによって変更できますsetGregorianChange()

暦の採用に伴ういくつかの特殊性について論じた、かなり面白い記事こちらからご覧いただけます

おすすめ記事