Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разобраться с преобразованием даты / 6 сообщений из 6, страница 1 из 1
10.08.2021, 17:24
    #40089904
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
В таблице есть поле типа bigint в котором хранится дата. А вот как ее преобразовать в нормальную datetime - непонятно.

В Powershell это можно сделать добавив 1600 лет, например:

Код: powershell
1.
2.
3.
PS C:\Users\aaa> (get-date 132730705745833389).AddYears(1600)
 
10 августа 2021 г. 12:02:54



А вот как это проделать в TSQL?
...
Рейтинг: 0 / 0
10.08.2021, 17:41
    #40089905
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
...
Рейтинг: 0 / 0
10.08.2021, 18:00
    #40089910
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
komrad,

Как DATEADD использовать я знаю, а вот как его применить в конкретном примере, с числом 132730705745833389?
...
Рейтинг: 0 / 0
10.08.2021, 18:10
    #40089915
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
AndrF,

тут посмотри https://michaeljswart.com/2017/07/converting-from-datetime-to-ticks-using-sql-server/

но что-то "не чисто" с этим твоим 132730705745833389 ...
Эту дату/время
AndrF
Код: powershell
1.
10 августа 2021 г. 12:02:54


возвращает если за точку отчета взять 1600-01-02


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
alter FUNCTION dbo.ToDateTime2 ( @Ticks bigint )
  RETURNS datetime2
AS
BEGIN
    DECLARE @DateTime datetime2 = '16000102';
    SET @DateTime = DATEADD( DAY, @Ticks / 864000000000, @DateTime );
    SET @DateTime = DATEADD( SECOND, ( @Ticks % 864000000000) / 10000000, @DateTime );
    RETURN DATEADD( NANOSECOND, ( @Ticks % 10000000 ) * 100, @DateTime );
END

select dbo.ToDateTime2 (132730705745833389)


Код: sql
1.
2.
3.
4.
---------------------------
2020-08-10 12:02:54.5833389

(1 row affected)
...
Рейтинг: 0 / 0
10.08.2021, 19:11
    #40089940
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
court
AndrF,
возвращает если за точку отчета взять 1600-01-02


Это уже мелочь - разберемся. Спасибо!
...
Рейтинг: 0 / 0
11.08.2021, 01:29
    #40089978
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разобраться с преобразованием даты
Юниксовая дата в миллисекундах?

Unix date -> MSSQL datetime
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разобраться с преобразованием даты / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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