2

次のコードがあり、日付文字列と日時を比較しようとしていますが、動作させることができません。これは行を出力しません。

DataTable tbl3 = dii.SelectGeneric("select * from widget_messages  where convert(datetime, m_date) ='" + String.Format("{0:d/M/yyyy}", DateUsed) + "'");

両方の日時の形式はまったく同じです。何かアイデアはありますか?

4

2 に答える 2

2

に変換しm_datedatetimeDateUsedますが、文字列のままです。

このように、それらを文字列として比較する必要があります

DataTable tbl3 = dii.SelectGeneric("select * from widget_messages  where m_date ='" + String.Format("{0:d/M/yyyy}", DateUsed) + "'");

または日時として、次のようにします。

DataTable tbl3 = dii.SelectGeneric("select * from widget_messages  where convert(datetime, m_date) = convert(datetime,'" + String.Format("{0:d/M/yyyy}", DateUsed) + "')");

編集: SQL Server 2005 でこれを試してください:

DataTable tbl3 = dii.SelectGeneric("select * from widget_messages  where abs(datediff(day,convert(datetime, m_date), convert(datetime,'" + String.Format("{0:d/M/yyyy}", DateUsed) + "'))) = 0");
于 2012-09-08T23:18:31.307 に答える