2012-04-20 3 views
-1

У меня есть запрос, который получает разницу во времени и дате с момента вставки записи против текущей даты.Запрос справки Получить точную дату Время Разница

Вот пример.

select 
datediff(date(now()),'2012-04-15 16:14:59') as DateDifference, 
timediff(now(), '2012-04-15 16:14:59') as TimeDifference 

Но это один дал мне следующий результат:

Дата Разница Разница во времени 5 112: 26: 22

Я действительно хочу, чтобы получить точную разницу между двумя ,

Пример:

5 8:24:22

где 5 день и 8:24:22 это время.

+0

Что именно вы хотите? 112: 26: 22 не 5 дней, 8 часов, 24 минуты и 22 секунды, а всего 4 дня, 16 часов, 24 минуты и 22 секунды. Какую из двух вы хотите вернуть? – Martijn

ответ

0

Попробуйте

SELECT floor((date1-date2)*24) || ' HOURS ' || 
mod(floor((date1-date2)*24*60),60) || ' MINUTES ' || 
mod(floor((date1-date2)*24*60*60),60) || ' SECS ' as time_difference 
FROM dates; 
0
DateTime startTime = DateTime.Now; 
DateTime endTime = DateTime.Now.AddSeconds(75); 
TimeSpan span = endTime.Subtract (startTime); 
Console.WriteLine("Time Difference (seconds): " + span.Seconds); 
Console.WriteLine("Time Difference (minutes): " + span.Minutes); 
Console.WriteLine("Time Difference (hours): " + span.Hours); 
Console.WriteLine("Time Difference (days): " + span.Days); 

И выход был бы:

Time Difference (seconds): 15 
Time Difference (minutes): 1 
Time Difference (hours): 0 
Time Difference (days): 0 
0

Попробуйте этот запрос:

select 
date(now()) date1, 
date('2012-04-15 16:14:59') date2, 
datediff(date(now()),'2012-04-15 16:14:59') as DateDifference, 
TIME(now()) time1, 
TIME('2012-04-15 16:14:59') time2, 
timediff(TIME(now()), TIME('2012-04-15 16:14:59')) as TimeDifference 

Это даст вам точные различия и сравнения.

Надеюсь, это поможет.