SQL;加+或减 - 而不是日期(ASP.NET-C#)

时间:2012-02-12 00:44:26

标签: c# asp.net sql date datediff

我正在使用ASP.NET_C#Application

我在网格视图上提取了一些日期形式的SQL。

但是,不是那些日期,我喜欢看到“Plus +”或“minus - ”这是多少形式今天的日期。

例如

今天的日期是= 11/02/2012

如果SQL中的日期是07/02/2012,我喜欢我的网格显示-4

或者

如果SQL中的日期是17/02/2012,我喜欢我的网格显示+6

请帮助我,我该怎么做......

这是我的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功能;并且我已经使用了约会功能来处理从出生日期起的年龄这样的事情,但我无法解决;我如何在案例中使用它 在此先感谢

3 个答案:

答案 0 :(得分:1)

您可以使用Timespan

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

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

答案 1 :(得分:1)

由于您使用的是MySQL,因此您的select语句应该是:

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

DATEDIFF将为您提供-1,1,-5等值,您的DataGridView应该显示这些值。

答案 2 :(得分: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