カスタムの日付/シフトを使用して数式列を作成するにはどうすればよいですか?私は交代制勤務に関連する分析に取り組んでいます。 シフトごとに12時間稼働しています。 つまり、午前7時から午後7時(日中シフト、D)と午後7時から午前7時(夜勤、N)に勤務します。
現在、次のような数式列スクリプトがあります。
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
このスクリプトに基づいてbcsを期待したとおりに機能しないようです。時刻が午前12時に達すると、新しい日に変更されました。
例えば:
スクリプトは、2020年12月1日午前5時49分47秒をWW49.2Nに変換します。 WW49.1Nである必要があります。 WW49.2Dは、日付と時刻が12/01/2020 7:00:00 AMのときに開始します。これは、夜勤の時間が午後7時から午前7時までであるためです。 誰かがスクリプトを作成する別の方法を提案またはアドバイスできますか?
分析データ表その他スクリプティングRe:カスタムの日付/シフトを使用して数式列を作成するにはどうすればよいですか?これを処理する最善の方法は、7時間を差し引いて日時の値を修正することです。これにより、シフトが日の値と一致します。
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) <= 12,
"D",
"N"
);
Re:カスタムの日付/シフトを使用して数式列を作成するにはどうすればよいですか?あなたが言うとき、ただ確認したかった-時間内(7)基板7時間という意味ですか?
Re:カスタムの日付/シフトを使用して数式列を作成するにはどうすればよいですか?現在の行の[日付]列に指定された値から25200秒を減算します。
25200 = 1分あたり60秒X1時間あたり60分X7時間
また、数式に少し誤りがありました。If()比較には、「<=」ではなく、2番目の要素の「<」比較が必要です。
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) < 12,
"D",
"N"
);