查询时没有在SQL Server中返回正确的输出

时间:2016-03-14 12:42:25

标签: sql sql-server-2008

当我像这样跑时,我有一个查询

/* cache object */
$html = $('html');

$(document).on('resize, ready', function() {
    /* initially remove all existing classes */
    $html.removeClass('xs sm md lg');

    var width = $(window).width();
    if (width < 768) {
        return $html.addClass('xs');
    }else if (width > 768 && width < 992) {
        return $html.addClass('sm');
    }else if (width > 992 && width < 1200) {
        return $html.addClass('md');
    }else{
        return $html.addClass('lg');
    }
});

我从表中得到一条记录。

但是当我尝试像下面那样动态地运行时

select emp_name, dt_of_join 
from emp_mst 
where dt_of_join = '2015-09-14'

它不会返回任何记录。为什么???

我正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:4)

因为getdate()返回带有小时的时间值,这使得时间不相等。使用CAST AS DATE截断日期,如下所示:

SELECT emp_name, Dt_Of_Join 
FROM emp_mst 
WHERE Dt_Of_Join =  cast(DATEADD(month, -6, GETDATE()) AS DATE)

编辑: DATE是在SQL Server 2008中引入的,如果您使用的是旧版本,请尝试以下操作:

SELECT emp_name, Dt_Of_Join 
FROM emp_mst 
WHERE Dt_Of_Join = CAST(FLOOR(CAST(DATEADD(month, -6, GETDATE()) AS FLOAT)) AS DATETIME)

如@zoharpeled的评论中所述,您可以阅读从日期here截断时间值的方法