powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разобраться с преобразованием даты
6 сообщений из 6, страница 1 из 1
Разобраться с преобразованием даты
    #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
Разобраться с преобразованием даты
    #40089905
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Разобраться с преобразованием даты
    #40089910
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

Как DATEADD использовать я знаю, а вот как его применить в конкретном примере, с числом 132730705745833389?
...
Рейтинг: 0 / 0
Разобраться с преобразованием даты
    #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
Разобраться с преобразованием даты
    #40089940
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court
AndrF,
возвращает если за точку отчета взять 1600-01-02


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

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


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