在 Sybase 中使用 Datediff(...Dateadd(...),Getdate()) 时键入 Clash
Type Clash when using Datediff(...Dateadd(...),Getdate()) in Sybase
我换过公司,从 SQL Server
换到了 Sybase-ASE
。我不知道我是不是脑子放屁,编码不正确,还是 SQL Server
和 Sybase-ASE
中的 运行 Datediff(...Dateadd(...),Getdate())
有区别。当 运行 下面的代码时,我在公式的 Datediff
一侧得到了 type clash (INT)
。 运行 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
table 实施到生产中显然有些困难...
没关系,多亏了这个post(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()))
在内置函数方面,ASE 和SQLServer 几乎相同。然而,有一个区别,这就是您可能会遇到的问题。在 SQLServer 中,您可以使用数值作为日期,它在 SQLServer 中被解释为 #days since 01-01-1900。 ASE 不支持使用数值作为日期,你会得到一个语法错误。
我换过公司,从 SQL Server
换到了 Sybase-ASE
。我不知道我是不是脑子放屁,编码不正确,还是 SQL Server
和 Sybase-ASE
中的 运行 Datediff(...Dateadd(...),Getdate())
有区别。当 运行 下面的代码时,我在公式的 Datediff
一侧得到了 type clash (INT)
。 运行 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
table 实施到生产中显然有些困难...
没关系,多亏了这个post(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()))
在内置函数方面,ASE 和SQLServer 几乎相同。然而,有一个区别,这就是您可能会遇到的问题。在 SQLServer 中,您可以使用数值作为日期,它在 SQLServer 中被解释为 #days since 01-01-1900。 ASE 不支持使用数值作为日期,你会得到一个语法错误。