求一SQL查询条件判断

ykwang 2010-01-26 08:39:09
我有一表记录如下: 表名 A表
C日期 D日期
2009-02-03 2009-02-04
2009-02-04 2009-02-02

我要写一语句,譬如查询 2009-02-04 这天有哪几条记录, 要求是 以两个日期中大者参加判断.

如查询 2009-02-04 结果是两条记录都 显示,因为两个最大日期都为 2009-02-04 ,如查询2009-02-03 则不返回任何记录.


decare @rq datetime
set @rq='2009-02-04'
select * from a表 不知后面条件该如何写.谢谢
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykwang 2010-01-26
  • 打赏
  • 举报
回复
josy 经典
SQL77 2010-01-26
  • 打赏
  • 举报
回复
select *
from tb
where
datediff(dd,C,'2009-02-03')=0 OR datediff(dd,D,'2009-02-03')=0
百年树人 2010-01-26
  • 打赏
  • 举报
回复
---测试数据---
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([C] datetime,[D] datetime)
insert [tb]
select '2009-02-03','2009-02-04' union all
select '2009-02-04','2009-02-02'

---查询---
select *
from tb
where
datediff(dd,case when c>d then c else d end,'2009-02-03')=0
/**
C D
------------------------------------------------------ ------------------------------------------------------

(所影响的行数为 0 行)
**/

select *
from tb
where
datediff(dd,case when c>d then c else d end,'2009-02-04')=0
/**
C D
------------------------------------------------------ ------------------------------------------------------
2009-02-03 00:00:00.000 2009-02-04 00:00:00.000
2009-02-04 00:00:00.000 2009-02-02 00:00:00.000

(所影响的行数为 2 行)
**/
百年树人 2010-01-26
  • 打赏
  • 举报
回复
select *
from tb
where
datediff(dd,case when c>d then c else d end,'2009-02-03')=0
--小F-- 2010-01-26
  • 打赏
  • 举报
回复
没看懂呢??2009-02-03 为什么没有记录

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧