1. ホーム
  2. sql-server

[解決済み] 最小の日付(1753年1月1日)を返すSQL Server関数

2022-12-28 13:15:28

質問

SQL Server 関数で、datetime の最小値、つまり 1753 年 1 月 1 日を返すものを探しています。私は、その日付の値をスクリプトにハードコードしたくありません。

そのようなものは存在するのでしょうか?(比較のために、C# では、私は単に次のようにすることができました。 DateTime.MinValue) それとも自分で書かなければならないのでしょうか?

Microsoft SQL Server 2008 Expressを使用しています。

どのように解決するのですか?

を書くことができます。 ユーザー定義関数 を書くと、このように最小の日付の値を返します。

select cast(-53690 as datetime)

そして、スクリプトの中でその関数を使い、もし変更する必要があれば、それを行う場所は一つしかありません。

代わりに、読みやすさを優先するならば、このクエリを使うこともできます。

select cast('1753-1-1' as datetime)

機能例

create function dbo.DateTimeMinValue()
returns datetime as
begin
    return (select cast(-53690 as datetime))
end

使用方法

select dbo.DateTimeMinValue() as DateTimeMinValue

DateTimeMinValue
-----------------------
1753-01-01 00:00:00.000