私は学校の仕事のためのデータベースを作成していますが、私がしたいことに問題があります。
私は実際のケースに取り組んでいるので、私は終了日、開始日、および関係の期間、と私は期間のトリガーを作成する必要が属性を持っています。しかし、まずそれを計算する必要があります。 StartDateおよびEndDateから派生した属性ですが、その方法はわかりません。 私はそれを行うためにプロシージャと関数をチェックしています(タプルが挿入されるたびにSQLがそれを計算するようにする必要があります)。私はDATEDIFF
を使用しようとしていましたが、私は本当に既存の属性でそれを行う方法を知らない。誰でも助けてくれますか?startdateとenddateから継続時間を計算するプロシージャSQL
0
A
答えて
0
あなたの記事のDecoderReloadedさんのコメントをより深く理解する必要があります。
クエリが開始されたときにINSTEAD OF triggerをカラムに残すと、終了時に別のカラムにAFTERトリガを保持することができます。
例:
CREATE TRIGGER TriggerInsteadOf
ON YourTable
INSTEAD OF INSERT, UPDATE
--You should repeat your queries here (as always needed with INSTEAD OF triggers) and set the datetime column value for the start time.
GO
CREATE TRIGGER TriggerAfter
ON YourTable
AFTER INSERT
--Don't need to repeat your queries here (as always happen with AFTER triggers) and set the datetime column value for the end time, or a DATEDIFF() to obtain the timespan.
GO
倍数のアップデートに気をつけろとあなたは多分あなたが達成したいかに応じて、あまりにも削除するコマンドを検討すべきです。
これは究極のアイデアではありませんが、実装するとうまくいくでしょう。がんばろう。
+0
ありがとうございました!私はそれに取り組んでいます!もう一度、ありがとう! –
関連する問題
- 1. 継続時間計算
- 2. ブートストラップdatetimepicker startDateとEndDate
- 3. SQLを使用したセッションの継続時間と時間の計算
- 4. 計算日の継続時間
- 5. select endDate after startDate
- 6. mapquestの距離と継続時間の計算
- 7. 1日分のイベントの合計継続時間の計算
- 8. mdx startDateからendDateまでの期間の数値を取得する
- 9. 異なる時間帯に基づいた継続時間(すなわち飛行時間)の計算
- 10. 月次データを取得するStartDateとendDateに基づいてテーブルから
- 11. t1.date(t2.startdateとt2.enddateの間)で無関係なテーブルに結合する
- 12. コピーSTARTDATEおよびENDDATE他のライン
- 13. 時間を加算して合計時間を計算する
- 14. 時間と分でPythonの時間を計算して差を計算する
- 15. 時間のかかる計算とSWT
- 16. 非連続オーバーラップ時間間隔の計算時間
- 17. 2つの連続する行の時間差を計算するSQLクエリ
- 18. 平均T-SQL計算時間
- 19. Oracle SQL:動的時間枠計算
- 20. 時間単位のT-SQL継続時間:分:秒
- 21. 時間計算
- 22. 時間計算
- 23. 計算時間
- 24. アクティビティログ - 継続時間
- 25. カウント継続時間
- 26. 列の値と一致する最初とn行の継続時間/差分を計算します
- 27. FirstDayOfWeekとFirstWeekOfYearを使用してStartDateを計算する
- 28. 時間フィールドと計算 - ベストプラクティス
- 29. 重複のない日付範囲の継続時間の計算
- 30. SQL DSTの境界を越える時間(時間)を計算する
DATEDIFFをどのように使用しようとしたか、結果に何が問題なのかを教えてください。 –
属性 'EndDate'、 'StartDate'を持つテーブルにトリガを作成することができます。更新前にトリガーを置くことができ、 'durationiff'(日数)または' timediff'(時:分::秒)を使って 'Duration'の値を計算することができます。 'new.duration = datediff(new.end_date、new.start_date)' – DecoderReloaded
レコードの場合は、コードを使って何かを行うのは初めてです。とても素朴です。私は属性EndDateとStartDateでそれを使用しようとしています:DATEDIFF(Days、StartDate、EndDate)しかし、SQLは使用できません。私は具体的な例と何も試していません。これは私が今持っているものです:DELIMITER $$ PROCEDURE spCalculateDurationをCREATE() が \t選択床を開始します(DATEDIFF(日、5、'05 -06-2017' ))期間 AS UserObjectiveからDuracao BY UO ORDER AS DESC; END $$ –