У меня есть данные big-int, и я хочу преобразовать их из Big-int в точное время, например, у меня есть это значение 53006745 для «14 часов 43 минут». Пожалуйста, помогите мне написать запрос в SQL Server, чтобы преобразовать большие в считанные минуты.

0
Pooneh.T 24 Окт 2017 в 16:22

3 ответа

Лучший ответ

Если вы ищете Чистый Time, вы можете попробовать запрос ниже SQL, который даст минуты из вашего Integer значения:

DECLARE @value INT = 53006745

SELECT DATEPART(MINUTE, DATEADD(s, CONVERT(BIGINT, @value) / 1000, CONVERT(DATETIME, '1-1-2017 00:00:00'))) [Minutes];

Результат .

Minutes
43
0
Yogesh Sharma 24 Окт 2017 в 14:16

Вы можете использовать этот код для себя в SQL:

SELECT DATEADD (s, CONVERT (BIGINT, 53006745) / 1000, CONVERT (DATETIME, '1-1-1970 00:00:00'))

Этот код возвращает 1970-01-01 14: 43: 26.000, как вам нравится

0
Saeed Dini 26 Окт 2017 в 11:07
DECLARE @Value INT = 53006745

SELECT 
      CONVERT(VARCHAR, @Value/3600000) + ':'                            -- Hours
    + RIGHT('0' + CONVERT(VARCHAR, @Value%3600000/60000), 2) + ':'      -- Minutes
    + RIGHT('0' + CONVERT(VARCHAR, @Value%3600000%60000/1000), 2) + '.' -- Seconds
    + RIGHT('00' + CONVERT(VARCHAR, @Value%1000), 3)                    -- Milliseconds
0
Denis Rubashkin 24 Окт 2017 в 13:45