1. ホーム
  2. sql

[解決済み] SybaseでDatediff(...Dateadd(...),Getdate())を使用すると型の衝突が発生する。

2022-02-11 11:15:05

質問

会社を変えたが、その際、以下の会社から切り替えた。 SQL Server から Sybase-ASE . 私が単に頭が悪くて間違ったコーディングをしているだけなのか、それとも Datediff(...Dateadd(...),Getdate())SQL ServerSybase-ASE . を取得しています。 type clash (INT) の上に Datediff を実行したときに、式の側に表示されます。実行中 Dateadd を単体で使用すると正常に動作します。何かを調整する必要があるのか、それとも単に Sybase-ASE . 何かお手伝いできることはありますか?私はこれらの他の質問をチェックしましたが、本当の助けはありません( datetimeから1日分を差し引く GETDATE 先月 SQLサーバーの先月のレコードを取得する Datediff GETDATE 追加 )

SELECT TOP 5 *

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

ALSO、サイドの質問です。先月分をすべて取得するための具体的な計算式が思い出せません。 Datediff どなたかご存知の方いらっしゃいましたら教えてください。一石二鳥と思っただけなので、何とかなります。どうやらやや難しいようなので Dates テーブルを本番に実装して...。

解決方法は?

でも、この記事のおかげで解決しました( SQLサーバーで先月のレコードを取得する )

where DATEPART(MONTH,fm.Date) = DATEPART(MONTH, DATEADD(MONTH,-1,GETDATE()))
AND DATEPART(YEAR,fm.Date) = DATEPART(YEAR, DATEADD(YEAR,0,GETDATE()))