如何使用if-else语句验证sql server 2008中的一个datetime字段是否大于第二个datetime?

如何使用if-else语句验证sql server 2008中的一个datetime字段是否大于第二个datetime?,sql,sql-server,sql-server-2008,validation,datetime,Sql,Sql Server,Sql Server 2008,Validation,Datetime,我正在编写一个sql查询,其中我想检查表a中的一个datetime字段是否大于表b中的一个datetime字段 任何帮助都将受到感谢 我的查询如下所示: SELECT A.AFIELD, B.BFIELD, ( <HERE I WANT TO PUT THE VALIDATION STATEMENT> ) AS 'VALIDATED AS' FROM A JOIN B ON A.AFIELD=B.AFIELD 从A.AFIELD=B.AFIELD上的连接B中选择A.AFIELD,B

我正在编写一个sql查询,其中我想检查表a中的一个datetime字段是否大于表b中的一个datetime字段

任何帮助都将受到感谢

我的查询如下所示:

SELECT A.AFIELD, B.BFIELD, ( <HERE I WANT TO PUT THE VALIDATION STATEMENT> ) AS 'VALIDATED AS' FROM A JOIN B ON A.AFIELD=B.AFIELD
从A.AFIELD=B.AFIELD上的连接B中选择A.AFIELD,B.BFIELD,()作为“验证为”
验证语句应该是

If (A.XFIELD < B.YFIELD)
THEN "YES"
ELSE
"NO"
If(A.XFIELD

我正在尝试,但无法做到,如果有人能帮助我,那将是非常棒的。

你想要案例陈述吗

CASE WHEN datediff(d,A.XFIELD, B.YFIELD) > 0 THEN 'YES'  ELSE  'NO' END
像这样的

SELECT 
A.AFIELD, 
B.BFIELD, 
(
CASE WHEN A.XFIELD < B.YFIELD THEN 'YES'  
ELSE  'NO' 
END
) AS 'VALIDATED AS' 

FROM A JOIN B ON A.AFIELD=B.AFIELD
选择
A.在外地,
B.伯菲尔德,
(
如果A.XFIELD
对此,您可以使用
案例陈述

语法:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
简单的大小写表达式:

CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 
搜索的大小写表达式:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
在您的情况下,它将类似于:

SELECT 
A.AFIELD, 
B.BFIELD, 
(
CASE 
WHEN
 A.XFIELD < B.YFIELD THEN 'YES'  
ELSE  'NO' 
END
) AS 'VALIDATED AS' 
FROM A JOIN B ON A.AFIELD=B.AFIELD
选择
A.在外地,
B.伯菲尔德,
(
案例
什么时候
A.XFIELD

我尝试过这个方法,但是A.Xfield和b.yfield是datetime数据类型,所以“>”或“请参见上面的编辑”。如果你的约会日期很接近,那么你可能需要将d替换为s,表示几秒钟,等等。嗨,波迪卢斯卡,谢谢你的帮助。我已经使用了它,它的工作,因为它应该。但是现在我有另一个问题。@Herman-从什么时候起,
不能与
datetime
s一起使用了?此查询输出1(当前):
在转换时选择CASE(datetime,'20120921')>当前\u时间戳,然后输出1 ELSE 0 END
。除非你说的是
XField
YField
实际上是
varchar(x)
s什么时候应该是DATETIME?实际上,我正在比较的字段是A.XField的数据类型=DATETIME,B.YFIELD的数据类型=TIME,我必须比较A.XField的DATETIME值,然后是B.YFIELD的时间(这个B.YFIELD的时间与A.XField的日期相同)。因此,如果A.XField为1900-01-01 10:10:00.000,则应将其与B.YFIELD的值(10:00:00.000)进行比较,但日期也应通过一些转换来显示,因此在转换之前,B.YFIELD的值应为1900-01-01 10:00:00.000。你明白我的问题了吗?我正在努力破解它,但仍然不引人注目(