• ベストアンサー

勤怠システムを作ってます。

問題点ですが 例えば20日21時出勤~21日1時退社とします。 この場合、データベースへの登録を日付ごと登録したら良いと前回アドバイスいただきました。 (それまでは日付が変わるごとにデータベースに登録した為、上記の例に対応できなかった) しかし、この手法だと出勤中の人の所に出勤中(出勤データが今日の日付と合致したら出勤中と表示させるが、日付が変わると、出勤時のデータが昨日になる為)と表示するのが困難です。 複雑に組めば可能だとは思いますが、シンプルな方法で上記の内容を改善する方法を御存知の方は御教授いただければと思います。何卒、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

日付だけ見て判断するのは無理と思います。  出勤/退社など時間に関係するものは、日付+時間で管理し、今出勤中を判断する場合、その日および 時間が出勤/退社の範囲にあるかという条件で判断するしかないと思います。  あるいは、出勤/退社に出勤中のフラグを設けて、ON/OFFを判断し、フラグが立っているものは 出勤中にするとか?だた、出勤中と調査する時点が、いついつ日の何時に出勤している人という条件指定 の場合はフラグ方式は無理ですが..

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

この質問者は http://hp.submit.ne.jp/producer/show/27034 フリーでやっているほどの人。 こんな簡単な質問なんてするはずがありません。 釣りです。回答するだけ無駄です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

36時間連続勤務 といったケースにも対応できるように、汎用的に考えるなら 今日の出勤データとか昨日の出勤データだけを見るのでななく 出勤中の人 = 出勤記録はあるが、それに対応した退勤記録がない人 ではないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

過去の質問知らないのでデータベースがどういうレイアウトかわかりませんが 単純に、 最後の出勤日時 < 最後の退社日時 なら 退社 最後の出勤日時 > 最後の退社日時 なら 出勤 でないでしょうか

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>出勤中の人の所に出勤中(略)と表示するのが困難 どこで詰まっているかわかりませんが、単純な話では? NOW() BETWEEN start_datetime AND end_datetime とするならたとえばstart_datetimeが「2012/04/20 21:00:00」、 end_datimeが「2012/04/21 01:00:00」だとすれば かりにNOW()が「2012/04/20 23:30:00」でも「2012/04/21 00:30:00」でも ヒットします

drmada
質問者

お礼

ありがとうございます。手がかりとして作成し直します。

全文を見る
すると、全ての回答が全文表示されます。
  • adobe_san
  • ベストアンサー率21% (2103/9760)
回答No.1

「始業開始前1時間を日の勤怠スタートで24時間カウント」では?

drmada
質問者

補足

回答ありがとうございます。 その場合、マクドナルドのような24時間営業で各従業員で始業時間が違う場合、困りませんか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 勤怠システムの仕様に関して

    テーブル数2 内訳:従業員名簿テーブル(以下Aとする)&従業員の勤怠情報テーブル(以下Bとする) 仕様1 日付変更にも対応するようにINSERTは日付情報も入れる。 仕様2 日付情報を入れるわけだから、日付が変わる際にBにテーブル登録は行わない。 例:日付2012/4/17:出勤時間21:00退勤時間 空 この状態でBに新しい日付2012/4/18を挿入すると退勤処理が出来なくなる。 仕様3 ABをIDでグループ化し、日付の降順の1番目がif(出勤時間が空でない and 退勤時間が空で有る) を満たした際に従業員一覧ページで名前の下に出勤を表示させる。 仕様4 仕様3の条件式が行えるように初期にBにテスト登録を行う。 以上です。私がSOHOだから相談するな。とか意味の解らない回答はしないでください、そしてそれに賛同しないでください。(普通に考えればおかしな話だと理解してください。起業家は経営のプロだから会計も完璧にできますか?商工会や税理士に相談しますよね?)

    • 締切済み
    • PHP
  • エクセルで勤怠管理。複数条件の関数

    いつもお世話になっております。 下記の形式でデータを保管しておりますが、複数条件検索関数が全く思いつかず 質問をさせて頂きます。 やりたい事は、下記の「データシート」の【打刻(退社)】に時刻を入れたいです。 ⦿下記は「回答シート」 タイムスタンプ  / 氏名(フルネーム)/ 出退勤 / 出退勤時間 / 理由 / 日付 / ID 2016/11/22 8:57:25  /   山田 / 出勤 / 9:30:00 /0 / 2016/11/22 / 100003 2016/11/22 12:34:59  / 佐藤 /出勤 / 9:00:00 /0 / 2016/11/22 / 100004 2016/11/22 18:57:25  /   山田 / 退勤 / 9:30:00 /0 / 2016/11/22 / 100003 2016/11/22 22:34:59  / 佐藤 / 退勤 / 9:00:00 /0 / 2016/11/22 / 100004 ★上記の様にデータが自動で取得されて来ます。(右手の2つ。日付、IDは関数で作っています) ⦿下記は「データシート」 打刻ID / 日付 / 社員ID / 区分 / 打刻(出勤) / 打刻(退社) 42696100003 / 2016/11/22 / 100003 / 出勤 / 9:30 / 7:00 ←ここ 42696100004 / 2016/11/22 / 100004 / 出勤 / 9:00 / 7:00    ←ここ 上記の「打刻(退社)」を取得したいのですが、自分で考えた検索値と値の取得は 以下の様な形かと考えております。 1.データシートの「社員ID+日付」が回答シートの「社員ID+日付」で検索して 2.一致した場合、出退勤列の「退勤」だった場合、「打刻(退社)」に時間を入れる。 VBAで出来ない環境なので、関数でどうやって解決するかが思い付かず質問させて 頂きます。 何卒、宜しくお願い致します。

  • 予約システム

    PHPを使って以下のような予約システムを作りたいと思っています。 http://www.e-418.net/dentist/0661553001/appo.php このような場合データベースには 日付で一日ずつデータが残っていくと思うのですが 予め365日分の日付を登録しておくものなのですか? また、データーベースの効率化を図るために 年度でテーブルは分けるべきなのですか? そうした場合年末年始にかけての日付を表示するにはどのようにすればいいのでしょうか? 私初心者な者ですので 質問の仕方も間違っているかも知れません<(_ _)> よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • JSPとサーブレットを使用した勤怠一覧の作成

    BeanクラスとサーブレットとJSPを使って、Accessのデータベースから指定した1ヶ月分の勤怠データを取得し、データの無い日付の部分には日のみ表示をする、というプログラムを作成したいのですが、よく分かりません。 誰か教えてくれませんか?

    • ベストアンサー
    • Java
  • 勤怠管理のエクセル関数 添削お願い致します。

    はじめまして。 勤怠管理の出勤簿を過去の質問を参考にしながら作成しておりますが、 「深夜割増時間」の計算で行き詰ってしまいました。 【22時~5時の時間帯に何時間勤務しているか】を計算したいのですが、 21時~6時の人や、2時~11時の人などがいる為、過去の質問もうまく参考にできませんでした。 以下の考えで計算式を作ってみました。 (1)出勤が5時過ぎ&退社が22時前ならばゼロ。 (2)出勤が5時以前なら5時から出勤時間を引く。 (3)退社が22時以降なら退社時間から22時を引く。 =IF(出勤時間>=TIMEVALUE("5:00")*(退社時間<=TIMEVALUE("22:00")),0,IF(出勤時間<TIMEVALUE("5:00"),TIMEVALUE("5:00")-出勤時間),IF(退社時間>TIMEVALUE("22:00"),退社時間-TIMEVALUE("22:00")) どなたかお助けいただければ幸いです。m(_ _)m

  • 2つのデータベースのデータを1つに合わせてのソート方法

    よろしくお願いします。 Accessで作成されたデータベースが2つあり、それぞれ同じ項目名で構成されているテーブルが1つずつあります。(データの変更前と変更後というように2つのデータベースに分けています。全体で約50万件です。) 検索用のフォームを作成し、条件に合致するデータを両方のデータベースから検索してフォーム上のリストボックスに表示していきたいのですが、その表示順番を2つのデータを合わせて日付順に並び変えたいのです。このような処理が可能なのかどうかも不明なのですが、可能であればその方法を教えていただけないでしょうか。

  • 退社勧告後の勤怠について

    長文ですが、宜しくお願い致します。 現在、退社勧告を受け、会社とは合意が成立しています。 退社予定日は、6月30日予定です。(退職届は提出していません) しかし、本日会社より、 「引継ぎとかも必要だけど、転職活動をして自分のために休みなさい」 と言われ、それに対して 「社歴も浅く有給残も少ないので休むと欠勤扱いになるので出来るだけ出勤します」 と答えたのですが、上席者から 「欠勤扱いにはならないよ(=有給扱い)」と明言するのです。()内は暗にです。 私個人的には欠勤扱いになる認識で、その分の給与が減額されることは 避けたいので出来るだけ出勤したいと考えています。 そこでご存知の方がいらしたら、 是非ご教授賜りたいのですが上記のような場合、 <会社側(上席者)の言うように有給残日数を超過した休暇日数は、有給扱いになる> つまり、出勤してもしなくても6月30日で〆られたこの1ヶ月間の給与は同じなのでしょうか? 【詳細情報として】 ・退社勧告を受けた日時:5月30日 13:00-13:15 ・残有給日数:6.5日 無知で申し訳ありませんが、ご教授下さいますよう 何卒、宜しくお願い致します。

  • 退社勧告後の勤怠について

    長文ですが、宜しくお願い致します。 現在、退社勧告を受け、会社とは合意が成立しています。 退社予定日は、6月30日予定です。(退職届は提出していません) しかし、本日会社より、 「引継ぎとかも必要だけど、転職活動をして自分のために休みなさい」 と言われ、それに対して 「社歴も浅く有給残も少ないので休むと欠勤扱いになるので出来るだけ出勤します」 と答えたのですが、上席者から 「欠勤扱いにはならないよ(=有給扱い)」と明言するのです。()内は暗にです。 私個人的には欠勤扱いになる認識で、その分の給与が減額されることは 避けたいので出来るだけ出勤したいと考えています。 そこでご存知の方がいらしたら、 是非ご教授賜りたいのですが上記のような場合、 <会社側(上席者)の言うように有給残日数を超過した休暇日数は、有給扱いになる> つまり、出勤してもしなくても6月30日で〆られたこの1ヶ月間の給与は同じなのでしょうか? 【詳細情報として】 ・退社勧告を受けた日時:5月30日 13:00-13:15 ・残有給日数:6.5日 無知で申し訳ありませんが、ご教授下さいますよう 何卒、宜しくお願い致します。

  • 退社勧告後の勤怠について

    長文ですが、宜しくお願い致します。 現在、退社勧告を受け、会社とは合意が成立しています。 退社予定日は、6月30日予定です。(退職届は提出していません) しかし、本日会社より、 「引継ぎとかも必要だけど、転職活動をして自分のために休みなさい」 と言われ、それに対して 「社歴も浅く有給残も少ないので休むと欠勤扱いになるので出来るだけ出勤します」 と答えたのですが、上席者から 「欠勤扱いにはならないよ(=有給扱い)」と明言するのです。()内は暗にです。 私個人的には欠勤扱いになる認識で、その分の給与が減額されることは 避けたいので出来るだけ出勤したいと考えています。 そこでご存知の方がいらしたら、 是非ご教授賜りたいのですが上記のような場合、 <会社側(上席者)の言うように有給残日数を超過した休暇日数は、有給扱いになる> つまり、出勤してもしなくても6月30日で〆られたこの1ヶ月間の給与は同じなのでしょうか? 【詳細情報として】 ・退社勧告を受けた日時:5月30日 13:00-13:15 ・残有給日数:6.5日 無知で申し訳ありませんが、ご教授下さいますよう 何卒、宜しくお願い致します。

  • SQL2005ストアド JOINの質問です

    INSERTの質問ですが、 2つのテーブル カレンダーマスタ、出勤データがあります。 出勤実績表を作成するのに、出勤していない日も帳票に 出したいので、空白の日付分は埋めれないかと思っています。 1.カレンダー 2011/3/1 2011/3/2 ↓ 2011/3/31 2.出勤データ    社員コード 日付     出勤  退社 0001    2011/3/2   0900  1800 0001    2011/3/4 0900 1900 0002 2011/3/2 0900 1800 0002 2011/3/4 0900 2000 これから、 社員コード 日付    出勤   退勤 0001     2011/3/1 0001 2011/3/2 0900 1800 0001 2011/3/3 0001 2011/3/4 0900 1900 0001 2011/3/5 ↓ 0001 2011/3/31 0002 2011/3/1 0002 2011/3/2 0900 1800 0002 2011/3/3 0002 2011/3/4 0900 2000          ↓ 0002 2011/3/31 出勤データのない日も、カレンダーの日付と、社員コードを 落としたいのですが、LEFT OUTER JOINなどで試してみるのでが うまくいきません。 どなたか、わかる方教えてください。 宜しくお願いします。

このQ&Aのポイント
  • エプソン EW-M634Tを使っていますが、割付印刷の機能が見つかりません。
  • 割付印刷の機能の場所を教えてください。
  • 割付印刷の機能の場所がわかる方、お教えください。
回答を見る