Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить дату+время из поля в формате bigint / 9 сообщений из 9, страница 1 из 1
19.02.2021, 22:27
    #40047367
Получить дату+время из поля в формате bigint
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.
...
Рейтинг: 0 / 0
20.02.2021, 00:50
    #40047385
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
864000000000 - чота дофига кажется. К-во нулей адекватное?

Сутки - это кажется 86400000 ms. Или я не прав?
...
Рейтинг: 0 / 0
20.02.2021, 08:02
    #40047416
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
Евгений Стронг
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.

Что-то я не совсем понял, Ваш код, но работает он правильно.
Вы к текущей дате прибавляете 737839 миллисекунд, что является 12 минут
...
Рейтинг: 0 / 0
20.02.2021, 08:39
    #40047422
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
Евгений Стронг
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.

Вам скорее всего нужно это
Код: sql
1.
2.
3.
select dateadd(ss, (63749359280000 - 62135596800000) / 1000, '19700101')

2021-02-19 19:21:20.000


где 62135596800000 = кол-во миллисекунд от 01.01.0001 до 01.01.1970

и да 637494192000000000 слишком большое и поэтому надо разделить на 10000
...
Рейтинг: 0 / 0
20.02.2021, 15:56
    #40047536
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
Евгений Стронг
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.


И чо, завтра там будет лежать ДРУГАЯ дата?
Бред.
...
Рейтинг: 0 / 0
21.02.2021, 13:24
    #40047648
Получить дату+время из поля в формате bigint
HandKot
Евгений Стронг
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.

Вам скорее всего нужно это
Код: sql
1.
2.
3.
select dateadd(ss, (63749359280000 - 62135596800000) / 1000, '19700101')

2021-02-19 19:21:20.000


где 62135596800000 = кол-во миллисекунд от 01.01.0001 до 01.01.1970

и да 637494192000000000 слишком большое и поэтому надо разделить на 10000


Спасибо! Я проверю этот запрос чуть позднее.
...
Рейтинг: 0 / 0
21.02.2021, 13:25
    #40047649
Получить дату+время из поля в формате bigint
aleks222
Евгений Стронг
Всем привет!

БД на MSSQL 2014. В поле bigint лежит значение вида - 637494192000000000. Как преобразовать это значение в формат datetime?

Пытался так, но результат не совсем соответствуют тому, какое должно быть.

Код: sql
1.
select dateadd(ms, 637493592800000000 / 864000000000 , convert(datetime, getdate()))



Разница примерно на 20 минут больше той, которая должна там лежать.


И чо, завтра там будет лежать ДРУГАЯ дата?
Бред.


Да, это значение (637493592800000000 ) из поля, в котором оно периодически обновляется и вот надо его показывать в "человеческом" виде.
...
Рейтинг: 0 / 0
21.02.2021, 14:00
    #40047659
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
Евгений Стронг,

Вы же знаете, каким алгоритмом время превращается в это значение, подумайте, как его превратить в символьную форму.
...
Рейтинг: 0 / 0
21.02.2021, 19:49
    #40047749
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить дату+время из поля в формате bigint
Евгений Стронг
aleks222
пропущено...


И чо, завтра там будет лежать ДРУГАЯ дата?
Бред.


Да, это значение (637493592800000000 ) из поля, в котором оно периодически обновляется и вот надо его показывать в "человеческом" виде.


Сложение с текущей датой должно этому способствовать?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить дату+время из поля в формате bigint / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]