2014-08-29 57 views
0

这里我需要使用SQL Server 2008比较日期。如果特定日期出现多次,我想要显示该表的详细信息。如何在SQL Server 2008中比较日期

例子:

create table datetest 
(
    columnx nvarchar(10), 
    columny nvarchar(10), 
    coldate date, 
    coltime datetime 
) 

insert into datetest values('a123','b123','2014-01-01','01:05:00.000'); 
insert into datetest values('a123','b456','2014-01-01','02:15:00.000'); 
insert into datetest values('a123','b789','2014-01-01','03:25:00.000'); 
insert into datetest values('a321','b321','2014-02-03','10:05:00.000'); 
insert into datetest values('a243','b243','2014-03-04','11:05:00.000'); 
insert into datetest values('a243','b243','2014-03-04','12:05:00.000'); 
insert into datetest values('a243','b243','2014-03-04','12:05:00.000'); 

现在我需要只显示记录,且日期大于一个出现在表格中。

预期的结果:

columnx columny coldate   coltime 
------------------------------------------------------- 
a123  b123 2014-01-01 1900-01-01 01:05:00.000 
a123  b456 2014-01-01 1900-01-01 02:15:00.000 
a123  b789 2014-01-01 1900-01-01 03:25:00.000 
a243  b243 2014-03-04 1900-01-01 11:05:00.000 
a243  b243 2014-03-04 1900-01-01 12:05:00.000 
a243  b243 2014-03-04 1900-01-01 12:05:00.000 

我尝试:

select * 
from datetest 
where coldate = '2014-01-01' or coldate = '2014-03-04'; 

注意:但是这不是大记录检查的正确途径。

+1

ü可以让乌尔问题清楚了吗? – 2014-08-29 05:07:12

+1

对于日期,SQL Server支持常规[比较运算符,如'<', '>','='和'BETWEEN'](http://msdn.microsoft.com/zh-cn/library/ms188074.aspx)。什么不工作? – Dan 2014-08-29 05:08:08

+1

“问:我只需要显示日期大于1的记录就会出现在表格中。”你想列出表中所有日期大于表中任何日期的日期吗?你究竟想要查询什么?请澄清你的问题。 – FoggyDay 2014-08-29 05:08:51

回答

3

尝试这样

select * from datetest 
where coldate in (select coldate from 
datetest group by coldate having count(*) > 1) 

DEMO

+0

非常感谢。 – Meem 2014-08-29 05:15:56