2012-02-12 4 views
0

私はASP.NET_C#アプリケーションで作業中ですSQL;プラス+またはマイナス - 日付(ASP.NET-C#)の代わりに

私はいくつかの日付フォームのSQLをグリッドビュー上に引き出しています。

しかし、それらの日付の代わりに、私はどのように "プラス+"または "マイナス"をマッシュアップするのが好きですか?今日の日付のフォームです。

例えば

今日の日は、SQLの日付が2012年7月2日の場合= 2012年11月2日

が、私は私のグリッドを表示するために-4

または

が好きです

SQLからの日付が2012年7月17日の場合、私はグリッドが+6を表示するのが好きです

どうすればいいのですか。

これはMy SQLクエリです。私は

SELECT MAX(AmountPay.DateUpto) AS [ PaidUpTo], TimeTable.Name, TimeTable.Ref, TimeTable.Time11to12 FROM AmountPay FULL OUTER JOIN TimeTable ON AmountPay.Ref = TimeTable.Ref WHERE (TimeTable.Time11to12 = @Time11to12) GROUP BY TimeTable.Name, TimeTable.Ref, TimeTable.Time11to12 

AmountPay.DateUptoとされて働いていることを私が好きな日には、+として参照するか -

私はDateDiff関数を提案されています。私は生年月日から年齢のようなものを取り組むために日付関数を使用しましたが、うまくいかないのです。 DATEDIFFを与える

SELECT DATEDIFF(CURDATE(), MAX(AmountPay.DateUpto)) AS [ PaidUpTo], 
    TimeTable.Name, 
...... 

:どのように私はアドバンス

で おかげ
+2

「ケース」は必要ありません。 'DateDiff'を' dd'と一緒に使うと、自動的に適切な+/-記号で日付の差分を返します。日差を表示する場所や、今日の日付から見たいカラム名を表示していないため、実際のSQLを提供することはできません。 –

答えて

0
SELECT DATEDIFF(day,GetDate(), MAX(AmountPay.DateUpto)) AS [ PaidUpTo], TimeTable.Name, TimeTable.Ref, TimeTable.Time11to12 FROM AmountPay FULL OUTER JOIN TimeTable ON AmountPay.Ref = TimeTable.Ref WHERE (TimeTable.Time11to12 = @Time11to12) GROUP BY TimeTable.Name, TimeTable.Ref, TimeTable.Time11to12 
1

はあなたがMySQLを使用しているので同じように、あなたのselect文があるべきTimespan

DateTime oldDate = DateTime.Now.AddDays(-4); 
DateTime today = DateTime.Now; 

TimeSpan span = oldDate.Subtract(today); 
string diff = span.Days.ToString(); 
1

を使用することができた場合にこれを使用することができますあなたは-1,1、-5 ...のような値をとり、DataGridViewはそれらの値をうまく表示する必要があります。

関連する問題