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_datetodatetimeDateUsed仍然是一个字符串。

您应该将它们作为字符串进行比较,如下所示

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 回答
0

如果 m_date 字段是 Date/DateTime 类型,则以下代码可以正常工作。

DataTable tbl3 = dii.SelectGeneric("select * from widget_messages  where convert(varchar, m_date, 12) ='" + String.Format("{0:yyyyMMdd}", DateUsed) + "'");
于 2012-09-09T04:05:54.787 回答