2012年5月2日水曜日

DateTime型への変換とDBでの比較

vb2005からSQLserver使っててDateTimeの比較で詰まったのでメモ



まずはDateTime型にするところから。

vb2005で日時の文字列をDataTime型に変換するときは以下のように行う。
Dim dt As DateTimedt = DateTime.ParseExact("2012/05/02 19:04:30", "yyyy/MM/dd HH/mm/ss", Nothing)    'DateTime.ParseExact(変換したい日時, フォーマット, フォーマットと日時の対応表?)
この時、文字列の書式とフォーマットの書式が一致していないと怒られる。

SQLで比較するときはすでにDateTime型なので

Dim query As String = ""query = query  + " SELECT COUNT(*) " + vbCrLfquery = query  + " FROM ZIEX  " + vbCrLf query = query  + " WHERE YMDT >= " + dt + " " + vbCrLf


などとする。
dtがString型のままの場合は以下のようにシングルクォーテーションで囲まなければならない。


Dim query As String = ""query = query  + " SELECT COUNT(*) " + vbCrLfquery = query  + " FROM  EAGLE " + vbCrLf query = query  + " WHERE YMDT >= '" + dt + "' " + vbCrLf

0 件のコメント:

コメントを投稿