0

私は PHP-MySql Guy で、vb.net と SQL Server CE の初心者です。
日付に基づいてレコードを処理する方法は?

今日の日付を格納する列が 1 つある列を持つ 任意のテーブル ( tbl_demo ) を検討してください。

 For example (table structure)-     Id     Name       today
                                    --     -----      -----
                                    int    nvarchar   datetime

テーブルに次のデータがある場合-

 Id     Name       today
 --     -----      -----
 1      vikram     11/08/2013 11:16:57 PM

では、2013 年 11 月 8 日のみをクエリに指定して、このレコードを取得するにはどうすればよいでしょうか。

PS-
クエリの実行中に次の問題に直面しています(コードスニペットはこちら)-

 Dim Ddate As Date
 Ddate = MonthCalendar1.SelectionRange.Start.ToString

SQLquery = "SELECT id,today FROM tbl_demo WHERE today = '" & Ddate & "'"

エラー :The data type is not valid for the boolean operation.[Data type (if known) = datetime,Data type (if known) = nvarchar]

4

3 に答える 3

0

where句のフィールドに関数を入れるのは最善ではありませんが(パフォーマンスに関して)、これでうまくいきます。

"SELECT id,today FROM tbl_demo WHERE CONVERT(DATETIME,CONVERT(VARCHAR,today,120)) = CONVERT(DATETIME,CONVERT(VARCHAR,'" & Ddate.ToString() & "',120))"

別の方法として、日付を ISO 形式に直接指定することもできます。

"SELECT id,today FROM tbl_demo WHERE CONVERT(DATETIME,CONVERT(VARCHAR,today,120)) = CONVERT(DATETIME,CONVERT(VARCHAR,'" & Ddate.ToString("yyyyMMdd") & "',120))"

SQL CE の場合は yyyyMMdd なのか yyMMdd なのかわからないので、両方試してみてください。

このMSDNの記事によると、「yyMMdd」である必要がありますが、タイプミスである可能性があります...

于 2013-08-11T18:36:50.647 に答える