既存の2つの列(date1とdate2)の間の日付付き関数に基づいて計算列を作成したいとします。 (日数)sql変更テーブル:2つの列間のdatediffに列のベースを作成
date1とdate2は、SQLのDATE型です。私は成功事例のなしで試してみました何
:
ALTER TABLE my_table ADD lenght AS datediff('dd', date1, date2)
はご協力いただきありがとうございます。
既存の2つの列(date1とdate2)の間の日付付き関数に基づいて計算列を作成したいとします。 (日数)sql変更テーブル:2つの列間のdatediffに列のベースを作成
date1とdate2は、SQLのDATE型です。私は成功事例のなしで試してみました何
:
ALTER TABLE my_table ADD lenght AS datediff('dd', date1, date2)
はご協力いただきありがとうございます。
GENERATED列は、他の列で参照される値が変更されると自動的に更新されます。正しい構文は次のとおりです。
ALTER TABLE my_table ADD length INT GENERATED ALWAYS AS (DATEDIFF('day', date1, date2))
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
HSQLDBでうまく動作しません。予期しないトークンは常にBY文が必要です... – Wilcar
古いバージョンのHSQLDBを使用しているようです。私は自分の答えをチェックし、括弧が必要であることがわかったので修正しました。そしてHSQLDB 2.3x以降のバージョンでうまくいきます。 – fredt
はい、私はLibreOfficeを使用しています – Wilcar