当量?不,但为什么呢?

时间:2009-01-14 04:13:27

标签: sql tsql date

T-SQL:

1(ANSI):convert(varchar(10),@DueDate, 102) < convert(varchar(10),getdate(), 102)

2(美国):convert(varchar(10),@DueDate, 101) < convert(varchar(10),getdate(), 101)

请注意,考虑到年份时,这些结果会返回不同的结果。

为什么?

有什么区别?为什么运营商在使用#2时需要考虑年份?

1 个答案:

答案 0 :(得分:4)

你想做什么?你在那里比较varchars。看看这些陈述的输出:

print convert(varchar(10), getdate(), 101)
print convert(varchar(10), getdate(), 102)

打印出来:

01/14/2009
2009.01.14

比较第一种形式只是要检查一个日期的月份是否小于当前日期的月份。

您是否需要将日期转换为varchar?为什么不直接比较它们?

@DueDate < getdate()