2016-07-07 2 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種類Datediff(... Dateadd(...)、Getdate())をSybaseで使用するとクラッシュする

SELECT TOP 5 * 

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

も、サイドの質問:誰もが発生した場合、私は、特定の式は、先月の全体を取得するためには何か思い出せないがDatediffではありません知っている。私はそれを理解することができます私はちょうど1つの石で2羽の鳥を殺すことが最善であると考えました。それは...

答えて

0

ネヴァーマインドを生産に実装Datesテーブルを取得するには明らかにやや困難だ、私は、組み込み関数、ASEとのSQLServerの時点では、このポスト(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())) 
1

に感謝しましたほぼ同じです。しかし、1つの違いがあり、これがあなたが打つかもしれないものです。 SQLServerでは、日付の数値を使用できます。日付は、01-01-1900以降のSQL Serverで#daysとして解釈されます。 ASEでは数値を日付として使用することはサポートされていないため、構文エラーが発生します。

関連する問題