2016-07-07 141 views
0

我已經切換公司並且這樣做,從SQL Server切換到Sybase-ASE。我不知道我是否只是腦部放屁,編碼是否錯誤,或者如果在運行Datediff(...Dateadd(...),Getdate()),SQL ServerSybase-ASE之間存在差異。在運行下面的代碼時,我在公式的Datediff一側獲得type clash (INT)。本身運行Dateadd工作正常。不知道是否需要調整,或者只能在Sybase-ASE內完成。任何幫助?我檢查了這些其他問題,但沒有真正的幫助(Subtract one day from datetimeGETDATE last monthGet the records of last month in SQL serverDatediff GETDATE Add在Sybase中使用Datediff(... Dateadd(...),Getdate())時發生類型衝突

SELECT TOP 5 * 

FROM SalesData fm 
WHERE fm.Date = DATEDIFF(MONTH, DATEADD(MONTH,-1,MAX(fm.Date)),GETDATE()) 

另外,側面的問題:我不記得具體公式是讓整個上個月的是Datediff如果有人發生了什麼知道。我可以弄明白,我只是認爲最好是一石二鳥。這顯然是有點難以得到落實到生產Dates表...

回答

1

在內置功能,ASE和SQLServer點幾乎完全相同。然而,有一個區別,這就是你可能打的。在SQLServer中,您可以使用數字值作爲日期,從01-01-1900開始,在SQLServer中將其解釋爲#日期。 ASE不支持將數值用作日期,並且您將收到語法錯誤。