2015-10-07 50 views
0

我有一个asp.net系统在数据库中有一个带有日期时间值的PODate字段。如何减去交货到货前剩下的日子。我想在列表视图中以列显示显示其余的日子

示例:交货日期为10月21日。它必须在交货到达之前显示14天。

它可以在选择查询中完成,或者它必须在我的visual studio中完成。

+0

你正在使用哪个数据库?你可以在SQL中使用日期差异函数。 –

+0

看看http://stackoverflow.com/questions/1607336/calculate-difference-between-two-dates-number-of-days – Mainak

回答

1

如果您正在使用SQL Server那么你可以使用此查询:

SELECT DATEDIFF(day,Column1,Column2) AS DiffDate from TableName 

或者,如果你想这样做的c#那么你可以使用TimeSpan对象

DateTime date1; 
DateTime date2; 
return (date1 - date2).TotalDays; 

如果您子查询只返回一个值,然后您可以尝试

SELECT ABS((SELECT DATEDIFF(day,Column1,Column2) AS DiffDate from TableName)) 
+0

我会去查询,但它显示出负值。可以变成正数 – gamered123

+0

使用绝对值函数ABS。语法是ABS(数字表达式) –

+0

我已经尝试了,我认为我做错了你能编辑你的答案 – gamered123

0

你可以用C#

DateTime date1; 
DateTime date2; 
return (date1 - date2).Days; 
0

做到这可以帮助你找到的差异。

SELECT DATEDIFF(DAY, GETDATE(), deliveryDate) AS DayDiff 
SELECT DATEDIFF(MINUTE, GETDATE(), deliveryDate) AS MinuteDiff 
SELECT DATEDIFF(SECOND, GETDATE(), deliveryDate) AS SecondDiff 
SELECT DATEDIFF(WEEK, GETDATE(), deliveryDate) AS WeekDiff 
SELECT DATEDIFF(HOUR, GETDATE(), deliveryDate) AS HourDiff 
+0

我已经尝试过它,它的工作原理,但它显示了一个负面的日子。可以是积极的日子 – gamered123

+0

试一试SELECT FORMAT(DATEDIFF(day,GETDATE(),deliveryDate),'+#; - #; 0') –

+0

我试过了,但格式不被识别 – gamered123

0

它可以同时在做,

我宁愿它在Visual Studio中进行,因为这是明显地呈现 逻辑。

C#

DateTime oldDate = new DateTime(2002,7,15); 
DateTime newDate = DateTime.Now; 

// Difference in days, hours, and minutes. 
TimeSpan ts = newDate - oldDate; 
// Difference in days. 
int differenceInDays = ts.Days; 

Console.WriteLine("Difference in days: {0} ", differenceInDays); 

https://msdn.microsoft.com/en-us/library/aa287590%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396

VB

Dim firstDate, msg As String 
Dim secondDate As Date 
firstDate = InputBox("Enter a date") 
Try 
    secondDate = CDate(firstDate) 
    msg = "Days from today: " & DateDiff(DateInterval.Day, Now, secondDate) 
    MsgBox(msg) 
Catch 
    MsgBox("Not a valid date value.") 
End Try 

https://msdn.microsoft.com/en-us/library/b5xbyt6f(v=vs.90).aspx

+0

这项工作,我该如何安排它到达最近的日期 – gamered123

+0

你是试图得到日期对。这里安排什么?你能不能更清楚些.. –