2011-11-04 108 views
2
SELECT ACOS(31.552278760192) 

當在MSSQL Server中執行時,它會返回一些值,但在MYSQL中執行時會返回null。MySQL和MS SQL查詢執行不同

任何形式的幫助表示讚賞。

+1

你爲什麼不檢查什麼ACOS(SIN(31.552278760192)* SIN(latitute)+ COS(31.552278760192)* COS(latitute)* COS(longitute) - 74.338372290294)* 6371將返回在MySQL?那裏可能有一些問題。 – Kangkan

+0

同意 - 你需要分解每個選擇。 – SliverNinja

+0

@Kangkan,我不那麼懶。我已經檢查過了。它返回的東西不是null。 –

回答

2

fine manual

ACOS(X)
返回X的反餘弦,即,其餘弦是X.返回NULL,如果X不爲在範圍-1到1

因此31.552278760192超出了MySQL的ACOS的範圍。實際上,由於[-1,1]acos(31.552278760192) is ~4i以外的結果,反餘弦函數並不產生實數。

+0

太棒了!大!非常深刻的回答。謝謝 –

+0

盛大答覆。如此深刻的洞察力。 +10投票按鈕在哪裏? – Kangkan