2

一緒に追加したい 2 つの日時フィールドがあります。形式は「01/01/1900 00:00:00」です。

これに関する主な問題は、計算に労働時間のみを含めたいということです。営業日は 08:30 ~ 17:30 で、週末は含まれません。

また、最初のフィールドが営業日外または週末に開始される場合、次の営業日の開始から 2 番目のフィールドを追加する必要があります。

例えば:

`'26/06/2009 15:45:00' + '01/01/1900 09:00:00' = '29/06/1900 15:45:00'

'12/07/2009 14:22:36' + '01/01/1900 18:00:00' = '13/07/1900 08:30:00'

'15/07/2009 08:50:00' + '01/01/1900 04:00:00' = '15/07/2009 12:50:00'`

これには、これを解決するためのユーザー定義関数の作成が含まれると確信していますが、これを開始する方法さえわかりません (私はここで深く理解していません) 誰かがこれを達成する方法についてアドバイスをくれますか?

4

3 に答える 3

1

dayofweek 関数といくつかのインライン case ステートメントを使用できます。

http://www.smallsql.de/doc/sql-functions/date-time/dayofweek.html

http://www.tizag.com/sqlTutorial/sqlcase.php

そのため、dayofweek 関数が sat を返さなかった場合に計算を実行します。または太陽。それ以外の場合は null を返します。

ユーザー定義関数を書かなくても済むと思いますが、SQL ステートメントは少し乱雑に見えます。しかし、基本的ではないほとんどの SQL ステートメントはすべて少し乱雑に見えます。

于 2009-07-15T11:38:54.013 に答える