2013-08-06 3 views
0

Мне нужно создать время из часов и минут. В MySQL есть есть функция «» Maketime именно для этогоSql-серверный эквивалент mysql_maketime

mysql> SELECT MAKETIME(12,15,30); 
    -> '12:15:30' 

Какую функцию нужно использовать, чтобы сделать это в SQL Server?

+0

какая версия SQL Server? – Taryn

+0

2012, но в предыдущих версиях нет ничего похожего на TIMEOFPARTS? –

+1

Нет, это новая функция в SQL Server 2012. –

ответ

3

SQL Server 2012 имеет TIMEFROMPARTS:

http://msdn.microsoft.com/en-us/library/hh213398.aspx

+0

+1. но я думаю только в sql server 2012? – Nithesh

+0

Да, 'TIMEFROMPARTS' и' DATEFROMPARTS' являются новыми в sql-сервере 2012. –

+0

Спасибо, именно то, что мне нужно, не смог найти его сам. –

2

Для более ранних версий SQL Server (предварительно 2012) Вам просто нужно использовать комбинацию DateAdd() функций.

SELECT DateAdd(hh, 12, DateAdd(mi, 15, DateAdd(ss, 30, 0))) 

Обратите внимание, что это возвращает значение datetime. Если вы используете 2008 год и выше, вы можете просто Cast() до time, если потребуется.

+0

На самом деле я использую 2012 год, но хорошо знать, как это сделать и в предыдущих версиях. Спасибо –

+0

определенно полезно для 2008 R2 –

1

Вы могли

dateadd(second, (12 * 3600) + (15 * 60) + 30, cast('00:00:00' as time)) 
+0

Это, пожалуй, самый чистый способ сделать это в SQL Server 2008 R2 при работе с переменными/отдельными значками в часах/мин/сек. –