我有以下代码,我正在尝试将日期字符串与日期时间进行比较,但我无法使其工作。这不会输出任何行。
DataTable tbl3 = dii.SelectGeneric("select * from widget_messages where convert(datetime, m_date) ='" + String.Format("{0:d/M/yyyy}", DateUsed) + "'");
两个日期时间的格式完全相同。有什么想法吗?
答案 0 :(得分:2)
您要将m_date
转换为datetime
,但DateUsed
仍为字符串。
你应该将它们比作字符串,比如
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");
答案 1 :(得分:0)
如果m_date字段是Date / DateTime类型,则以下代码将正常工作。
DataTable tbl3 = dii.SelectGeneric("select * from widget_messages where convert(varchar, m_date, 12) ='" + String.Format("{0:yyyyMMdd}", DateUsed) + "'");