2010-10-06 3 views
0

Попытки вернуть даты, хранящиеся в базе данных в видеSQL DateTime DATEDIFF

дней: часы: минуты

Но SQL код ниже не кажется, работает хорошо.

select 
CONVERT(VARCHAR(40),DATEDIFF(minute, MAX(sends), GETDATE())/(24*60)) + '<b>days:</b> ' + CONVERT(VARCHAR(40), DATEDIFF(minute, MAX(sends), GETDATE())%(24*60)/60) 
+ ' <b>hours:</b> ' + CONVERT(VARCHAR(40), DATEDIFF(minute, MAX(sends), GETDATE())%60) + '<b>min.</b>' as sends FROM Table_Name 

То, что я пытаюсь сделать, это получить Эру сообщение т.е. как долго сообщение было в определенной таблице базы данных. И я хотел бы иметь возможность сделать это в SQL, а не в моем приложении.

+0

Помогла ли вам DATEPART? – SteveCav

+0

@ Kobojunkie, вы говорите, что код SQL «кажется не работает хорошо» - каким образом он не может предоставить то, что вам нужно? –

+0

Он не возвращает правильную информацию – Kobojunkie

ответ

2

Я бы вернул общее количество секунд (наименьшая степень детализации, о которой вы заботитесь), и пусть код приложения отформатирует его. Это будет масштабироваться лучше в долгосрочной перспективе и, как правило, легче писать.

1

Возможно, вместо того, чтобы делать какуляции вручную, вы читаете о the datediff function и попросите его сделать для вас работу.

Или еще лучше, просто получите минуты и сделайте форматирование в php (или что вы используете).