SQLServerでデータベースを作ろうとしています。
ここで0時間0分以上48時間0分未満が入力されることが想定されるフィールドがあります。
現在データ型「smalldatetime」とだけ設定して例えば25時間30分というデータを保管したところ、
SQL Management Studioの結果において「1900-01-02 01:30:00」のように結果表示されています。
エクセルでいうところの[hh]:mm形式、この場合25:30というように結果表示するよう設定したいのですが
これはテーブルデザインの設定を変えるなどの方法で実現できますでしょうか。
追記依頼を読んで、変なテーブル設計しているかもしれないと思い見直しましたところ
smalldatetimeと設定していた18個のフィールドがあったうち、16個は24時間を超えることがなく、日付も不要のため、Time型にしました。
残り2個は今まで日付を設定していなかったのですが、適切な日付がありましたので、DB書き込み前に日付と時間を足してからsmalldatetimeに格納するようにしました。
ただこちらの2個について普段は時間部分しか見ないため、計算列で視認性を向上させました。
そのような結果表示をしたいのは、SQL Management Studioに於いてだけの話ですか?
また、
> 25時間30分というデータを保管したところ
どのような形式で入力しましたか? SQL Management Studioで直接入力されたのですか?
>そのような結果表示をしたいのは、SQL Management Studioに於いてだけの話ですか?
まず第一段階としてそこを目指したいです。
その後、select * from テーブル名、というようなシンプルなsqlでデータ取得ときにも同様の表示されることも目指します(もしデザインの型設定などで実現できるなら同時に実現できるかと思ったのですが、難しそうですね)
>> 25時間30分というデータを保管したところ
>どのような形式で入力しましたか? SQL Management Studioで直接入力されたのですか?
プログラムからinsert文で入力しました。
お恥ずかしながらここで"25:30"と保管したつもりだったのですが、実際に発行した文を確認したところinset文を作った時点で既に'1900-01-02 01:30:00'に変換されていました。
Management Studioのsmalldatetime型フィールドに24時間以上の時間を入力するのはそもそも不可能のようで、失礼いたしました。
回答2件
あなたの回答
tips
プレビュー