- ベストアンサー
SQL Serverのテーブルにて時間の計算をしたい
お世話になります。 勤怠管理のアプリを作っています。 テーブル:SQL Server フロントエンド:MS Access 時間の計算ができません。 [日付] [出勤時刻] [退勤時刻] [勤務時間] というフィールドを作成したのですが、 勤務時間の計算はどのように行えばよろしいでしょうか? それぞれのデータ型はどのようにすればよろしいでしょうか? 単純に考えると[退勤時刻]-[出勤時刻]ですが……。 テーブルもMS Accessの場合はこのような計算式で勤務時間を算出できたのですが、SQL Serverに移行する場合がわかりません。 みなさま、どうぞよろしくお願いします。 ※質問文に不足・不明点がある場合はご指摘いただければ 補足欄にて追記させていただきます
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
デザイナーでプロではありませんが、チクッと試してみました。 <SQL Server 2000のテーブルをAccessのフォームに表示する> ID 日付 出勤時刻 退勤時刻 勤務時間 1 2006/06/10 8:00:00 17:30:00 0 2 2006/06/10 8:00:00 18:30:00 0 |(expession)| ----|------------ 1|09:30 | 2|10:30 | 上のテーブルから勤務時間を計算してAccessのフォームに表示してみました。 一応、目的は達成したようです。 ・smalldatetime。 ・SQL文は、 SELECT convert(char(5),退勤時刻 -出勤時刻,14) FROM Table1; Boolsonline で convert で検索してSQL文を書いてみました。 ※なんせ、素人です。 ※本回答を待つ間の参考にして下さい。
その他の回答 (1)
- kyofu-chan
- ベストアンサー率23% (109/464)
MS SQL Server なら、datetime 型で datediff 関数でしょうか (私は、日時自体を特定時点からの秒数で保存しています)。
お礼
ご回答、ありがとうございます。 お礼が遅くなりまして、たいへん申し訳ありません。 日時型にしてしまうと、月末の訂正入力(一括入力時)に日付まで入力しなければならなくなるため、日付型はあきらめました。
お礼
ご回答、ありがとうございます。 お礼が遅くなりまして、申し訳ありませんでした。 せっかくご回答いただいたのですが、私が余りに勉強不足のため理解できないままです。 結局、nvarchara型にしてhh:mm形式でデータを持つことになりそうです。 秒単位が省略されてしまいますが、フロントエンドがAccessでクエリベース・私の無知が故にかなりの妥協案ではありますが……。 そうなると、24時以降の勤務時間が保持(計算)できないんですがね……。