0
関数を使用せずに、2つの日付の間に月、日の差が生じる問題があります。日付間のSQLの差異(年、月、日)
これまでのところ、私はこの乱雑なコードを持っていますが、うまく動作しません。時には月/日が - です。 tblProject.BillingDateはStartDate、tblServiceTicket.ServiceTicketDateはEndDateです。
CONVERT(varchar(12),datediff(YEAR,tblProject.BillingDate,tblServiceTicket.ServiceTicketDate)) + ' year, '
+ CONVERT(varchar(12),DATEDIFF(MM, DATEADD(YY, datediff(YEAR,tblServiceTicket.ServiceTicketDate,tblProject.BillingDate), tblServiceTicket.ServiceTicketDate), tblProject.BillingDate)) + ' months, '
+ CONVERT(varchar(12),DATEDIFF(DD, DATEADD(MM, DATEDIFF(MM, DATEADD(YY, (datediff(YEAR,tblProject.BillingDate,tblServiceTicket.ServiceTicketDate)), tblProject.BillingDate), tblServiceTicket.ServiceTicketDate), DATEADD(YEAR, datediff(YEAR,tblProject.BillingDate,tblServiceTicket.ServiceTicketDate) , tblProject.BillingDate)), tblServiceTicket.ServiceTicketDate)) + ' days '
DATEDIFFを単独で使用するのはなぜですか? – dfundako
あなたの例では、CONVERT関数を使用しました。 – DVT
Datediffは使用する必要がありますが、あなたが考えている方法で使用する必要はありません。そして、 '@dstart = '20161231'、' @dend = '20170101''のような実際のケースを扱うためのルールを設定しなければならないでしょう。ここで 'DATEDIFF'は1を返します、月、または日。あなたが探しているのは、年、月、日のINTERVAL計算で、日付付きの型関数ではありません。 –