C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: datatime型のtime部を条件にする


(過去ログ 84 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■50057 / inTopicNo.1)  datatime型のtime部を条件にする
  
□投稿者/ こん (12回)-(2010/05/27(Thu) 13:11:35)

分類:[VB.NET/VB2005 以降] 

SQLServerからレコードを取得する際に、datetime型フィールドの時間を条件としたいのですが可能でしょうか。

SQLServerフィールド
実施日(date)
開始時間(datetime)
終了時間(datetime)


2010/01/01 2010/01/01 09:00:00 2010/01/01 18:00:00
2010/02/02 2010/02/02 08:30:00 2010/02/02 17:00:00
2010/03/03 2010/03/03 11:00:00 2010/03/03 19:00:00
というレコードから
開始時間 09:00:00〜10:00:00 かつ 終了時間 18:00:00〜19:00:00を取得。
引用返信 編集キー/
■50068 / inTopicNo.2)  Re[1]: datatime型のtime部を条件にする
□投稿者/ たか (58回)-(2010/05/27(Thu) 14:49:52)
簡単なのは文字列に変換してその大小で比較するSQL書くことかな?

>開始時間 09:00:00〜10:00:00 かつ 終了時間 18:00:00〜19:00:00を取得。

AND CONVERT(VARCHAR(8),start_date,108) >= '09:00:00' and CONVERT(VARCHAR(8),start_date,108) <= '10:00:00'
AND CONVERT(VARCHAR(8),end_date,108) >= '18:00:00' and CONVERT(VARCHAR(8),end_date,108) <= '19:00:00'

■参考
http://techbank.jp/Community/blogs/nora/archive/2009/08/18/11699.aspx


DATEPARTとか使って時、分、秒を一個ずつ取り出して一個ずつ比較なんてこともできるけど
書けばわかるけど面倒な上に可読性が低くてバグの原因になりやすい。






引用返信 編集キー/
■50071 / inTopicNo.3)  Re[2]: datatime型のtime部を条件にする
□投稿者/ 囚人 (501回)-(2010/05/27(Thu) 15:46:29)
SQL Server のバージョンが分からないですけど、2008 なら time型があるので、それを使うべきです。
引用返信 編集キー/
■50150 / inTopicNo.4)  Re[2]: datatime型のtime部を条件にする
□投稿者/ こん (13回)-(2010/05/29(Sat) 09:08:48)
No50068 (たか さん) に返信
> 簡単なのは文字列に変換してその大小で比較するSQL書くことかな?
>
> >開始時間 09:00:00〜10:00:00 かつ 終了時間 18:00:00〜19:00:00を取得。
>
> AND CONVERT(VARCHAR(8),start_date,108) >= '09:00:00' and CONVERT(VARCHAR(8),start_date,108) <= '10:00:00'
> AND CONVERT(VARCHAR(8),end_date,108) >= '18:00:00' and CONVERT(VARCHAR(8),end_date,108) <= '19:00:00'
>
> ■参考
> http://techbank.jp/Community/blogs/nora/archive/2009/08/18/11699.aspx
>
>
> DATEPARTとか使って時、分、秒を一個ずつ取り出して一個ずつ比較なんてこともできるけど
> 書けばわかるけど面倒な上に可読性が低くてバグの原因になりやすい。
>

ありがとうございます。

やはりそれしか方法はありませんか…。
ご提示のページ拝見していたんですが、もう少し簡単に出来る方法があればと思い質問させていただきました。

>
>
>
>
>
引用返信 編集キー/
■50151 / inTopicNo.5)  Re[3]: datatime型のtime部を条件にする
□投稿者/ こん (14回)-(2010/05/29(Sat) 09:10:28)
No50071 (囚人 さん) に返信
> SQL Server のバージョンが分からないですけど、2008 なら time型があるので、それを使うべきです。
ありがとうございます。
開発環境は2008ですが運用するのは2005なのでTime型は使用できません。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -