2009-01-14 56 views
0

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時不考慮年份?

回答

4

你想做什麼?你在比較變種,那裏。看看輸出這些語句:

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

,打印這樣的:

01/14/2009 
2009.01.14 

第一種形式比較只是真的要被檢查,看是否有日期的月份少於一個月當前日期。

是否有你需要將日期轉換爲varchar的原因?爲什麼不直接比較它們?

@DueDate < getdate() 
相關問題