2017-12-03 15 views
2

私の元の質問への回答に基づいてSQL Serverの:今日の日付

を更新しましたから、日付列の引き算である新しい列を作成し、私は次のように私のコードを調整する:

以下
SELECT 
    [OPCODE], [dtbuilt], 
    [EVENT_2], 
    [AGE_NO_DAYS] = DATEDIFF(day, - dtbuilt, CAST(GETDATE() As DATE)) 
INTO #df_EVENT5_6 
FROM #df_EVENT5_5 

エラーIであります「Mの受信:

オペランドデータ型日時マイナスオペレータ

無効です次のようにdtbuilt列内の

値は以下のとおりです。私は、SQL Serverの新しい列を作成したい1999-11-29 00:00:00.000

は、今日の日付マイナスdtbuiltと呼ばれるdatetime型の列であるAGE_NO_DAYSと呼ばれます。

以下は試したコードですが、エラーがあります。

SELECT 
    [OPCODE], [dtbuilt], 
    [AGE_NO_DAYS] = CAST(GETDATE() As DATE) - [dtbulit]  
INTO 
    #df_EVENT5_6 
FROM 
    #df_EVENT5_5 

これは私が取得エラーです:

無効な列名 'dtbulit'。

+0

を、あなたは私たちにテーブル#のdf_events_5のテーブル定義を表示することができますか? – Ryu

+0

どうすればいいですか? – PineNuts0

答えて

1

コードにスペルミスがあり、dateadd()を使用しているはずです。試してみてください:あなたは計算列でこれを行うことができ

SELECT [OPCODE], 
     [dtbuilt], 
     [AGE_NO_DAYS] = DATEDIFF(day, dtbuilt, CAST(GETDATE() As DATE))  
INTO #df_EVENT5_6 
FROM #df_EVENT5_5 

注:

alter table #df_EVENTS_5 add age_num_days as (DATEDIFF(day, dtbuilt, CAST(GETDATE() as DATE)); 
+0

提案されたコードを実行すると、次のエラーが発生します。オペランドデータ型のdatetimeがマイナスオペレータ – PineNuts0

+0

@ PineNuts0に対して無効です。 。 。だから私は 'dateadd()'にコードを切り替えたのです。 –

+0

私はDATEADDをあなたが示唆したように使用しています...しかし、エラーは上記で述べたものです – PineNuts0