私はMS SQL Server 2005を使用しており、部分的に日付値を格納する必要があります。例えば、日付の日の部分は、実際には不明のままであるかもしれませんが、MS SQL Serverは、フォローのような完全な日付を指定する制約:日付の値を部分的に保存するにはどうすればいいですか?
INSERT foo(dt) VALUES('2001-10-31');
は、私もこのようなものを使用したいと思います:
INSERT foo(dt) VALUES ('2001-10-??');
SET NOCOUNT ON
CREATE TABLE foo (
dt INT
)
INSERT foo VALUES (
DATEPART(YEAR, GETDATE()) * 10000
+ DATEPART(MONTH, GETDATE()) * 100
+ DATEPART(DAY, GETDATE())
)
SELECT dt FROM foo
DROP TABLE foo
... HM、私はそれが唯一の方法だかどうかを信じることができません:もちろん
は、MS SQLは、このような日付を受け入れることができない、と私は乗算に日付部分を変換ラフの例を見つけましたゾルにこの問題を解決するにはどうすればよいですか?
ありがとうございます。
UPD 2014:
はまたStoring partial dates in a database
なぜあなたは完全な日付を知りませんか?完全な日付がない日付フィールドはどのように使用されますか? – HLGEM
時々ある日の日の部分は本当に不明です。例えば、未発表の音楽デモレコードはまばらに書き込むことができますが、そのレコードは、レコードの日を示すものではなく、誤っているか部分的に日付が付いている可能性があります。だから私は記録情報の記入を延期する可能性を予約したいと思います。 –