2016-04-26 10 views
0

From_dateto_dateという列があります。列のデフォルトの制約はそれぞれgetdate()9999-12-31です。デフォルト値の代わりにカラムにガーベッジ値が表示される

しかし、私はテーブルにデータをロードした後に何か変なことがあります。代わりに、私は1753-01-01 00:00:00.0000000

として列の両方に値を取得していますデフォルト値の

は、誰もがこのような状況に出くわしていますか?この問題を解決するには?ここで

COLUMN FORテーブルのいくつかのDDL

ALTER TABLE [dbo].[mytable] 
ADD CONSTRAINT [df_FMDT_IX] 
DEFAULT (getdate()) FOR [from_date] 
GO 

ALTER TABLE [dbo].[mytable] 
ADD CONSTRAINT [df_TODT_IX] 
DEFAULT ('9999-12-31') FOR [to_date] 
GO 

データ型は、あなたが見ている日付DATETIME2

+0

おそらくデフォルトの制約を含めて、あなたのテーブルDDLをスクリプト化してここに投稿してください。列はどのデータ型ですか?代わりに 'CONVERT(DATETIME、 '9999-12-31'、120)'を使用するとどうなりますか? –

+0

どのように行を挿入しますか?その日付の値はおそらく、使用するフレームワーク/言語のデフォルトの一部です。 –

+0

@ Nick.McDermaid:列のデータ型はdatetime2です。 ALTER TABLE [dbo]。[mytable] ADD CONSTRAINT [df_FMDT_IX] DEFAULT(getdate())FOR [from_date] GO ALTER TABLE [dbo]。[mytable] ADD CONSTRAINT [df_TODT_IX] DEFAULT( '9999-12-31 ')FOR [to_date] GO ありがとう –

答えて

2

は、SQLにおける最小日付値であるです。

What is the significance of 1/1/1753 in SQL Server?

私は誰かが分可能値として表示されます、その列にゼロを入力しますと仮定しています。

+0

私はインポートエクスポートウィザードを使用してフラットファイルからSQLテーブルにデータをロードしています。フラットファイルの両方の列は空白なので、既定値はそこにあるはずですが、既定値の代わりに列に表示されるガベージ値です。 –

+0

空白と言うと、それは長さゼロの文字列ですか?それはNULL値と同じではありません。 –

+0

はいそれは長さゼロの文字列です –

関連する問題