SQL DateTime Datediff - PullRequest
       4

SQL DateTime Datediff

0 голосов
/ 06 октября 2010

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

Дни: Часы: Минуты

Но приведенный ниже код 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, а не в моем приложении.

Ответы [ 2 ]

2 голосов
/ 06 октября 2010

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

1 голос
/ 06 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...