SQL Server 2005,仅存储日期并仅使用日期检查条件

本文关键字:日期 条件 检查 存储 Server 2005 SQL | 更新日期: 2023-09-27 17:54:07

我使用的是SQL Server,只想存储日期部分,如果它存储时间也没有问题,但在检查条件时,我只想考虑日期。例如。NET。

SELECT * 
  FROM checkins 
 WHERE checkindate='" + DateTime.Now.toShortDateString() + "'";

SQL Server 2005,仅存储日期并仅使用日期检查条件

使用CONVERT函数仅获取DateTime列的日期部分:

SELECT * 
FROM checkins 
WHERE CONVERT(VARCHAR(10),checkindate, 106) ='" + 
                                     DateTime.Now.ToShortDateString() + "'";

不过,为了使日期明确,我不会使用ToShortDateString,而是使用自定义格式字符串:

DateTime.Now.ToString("d MMM yyyy")

总之:

SELECT * 
FROM checkins 
WHERE CONVERT(VARCHAR(10),checkindate, 106) ='" + 
                                     DateTime.Now.ToString("d MMM yyyy") + "'";
SELECT * 
  FROM checkins 
 WHERE DATEADD(DAY, DATEDIFF(DAY, 0, checkindate), 0)
    = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
SELECT dateadd(dd, datediff(dd,0,getdate()), 0)

将只为您获取日期,同时将其保留为日期时间类型。比较日期时间类型往往比比较字符串更有效。

这种方法可以灵活地忽略日期、月份、上一个月、年份等。请参阅本文了解更多信息。。http://www.sqlservercentral.com/articles/Date+操作/69694/