2017-08-26 6 views
1

既存の2つの列(date1とdate2)の間の日付付き関数に基づいて計算列を作成したいとします。 (日数)sql変更テーブル:2つの列間のdatediffに列のベースを作成

date1とdate2は、SQLのDATE型です。私は成功事例のなしで試してみました何

 ALTER TABLE my_table ADD lenght AS datediff('dd', date1, date2) 

はご協力いただきありがとうございます。

答えて

1

GENERATED列は、他の列で参照される値が変更されると自動的に更新されます。正しい構文は次のとおりです。

ALTER TABLE my_table ADD length INT GENERATED ALWAYS AS (DATEDIFF('day', date1, date2)) 
+0

HSQLDBでうまく動作しません。予期しないトークンは常にBY文が必要です... – Wilcar

+0

古いバージョンのHSQLDBを使用しているようです。私は自分の答えをチェックし、括弧が必要であることがわかったので修正しました。そしてHSQLDB 2.3x以降のバージョンでうまくいきます。 – fredt

+0

はい、私はLibreOfficeを使用しています – Wilcar

2
ALTER TABLE my_table ADD lenght AS int; 

UPDATE my_table SET lenght = DateDiff('dd', date1, date2); 

-- Don't forget to add a trigger that fires on updated and inserted rows that will keep the value of lenght valid if the date1 or date2 changes 
+0

グレートです。引き金のために私を助けることができますか?私は絶対初心者です... – Wilcar

+0

私のために:ALTER TABLE my_table ADD lenght int; – Wilcar

関連する問題