我已经切换公司并且这样做,从SQL Server
切换到Sybase-ASE
。我无法判断我是否只是一个大脑放屁并且编码错误,或者在Datediff(...Dateadd(...),Getdate())
和SQL Server
中运行Sybase-ASE
之间是否存在差异。在运行下面的代码时,我在公式的type clash (INT)
侧获得Datediff
。单独运行Dateadd
可以正常运行。不确定是否需要调整某些内容或者无法在Sybase-ASE
中完成。有帮助吗?我查看了其他问题,但没有真正的帮助(Subtract one day from datetime GETDATE last month Get the records of last month in SQL server Datediff GETDATE Add)
SELECT TOP 5 *
FROM SalesData fm
WHERE fm.Date = DATEDIFF(MONTH, DATEADD(MONTH,-1,MAX(fm.Date)),GETDATE())
另外,旁边的问题:我不记得上个月的整个具体公式是Datediff
,如果有人碰巧知道的话。我可以搞清楚,我认为最好一石二鸟。将Dates
表格实施到生产中显然有些困难......
答案 0 :(得分:1)
在内置函数方面,ASE和SQLServer几乎完全相同。然而,有一点不同,这就是你可能会遇到的。在SQLServer中,您可以对日期使用数值,该值在SQLServer中将自01-01-1900解释为#days。 ASE不支持使用数值作为日期,您将收到语法错误。
答案 1 :(得分:0)
没关系,我得到了这篇文章(Get the records of last month in SQL server)
where DATEPART(MONTH,fm.Date) = DATEPART(MONTH, DATEADD(MONTH,-1,GETDATE()))
AND DATEPART(YEAR,fm.Date) = DATEPART(YEAR, DATEADD(YEAR,0,GETDATE()))