![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужно преобразовать в формат TDateTime. [D6, D7, MSSQL]
Alexandra © (2008-08-06 14:46:00)подскажите, Есть формат даты:
The number of seconds since 0000 Universal Time Code (UTC) 1970
Нужно преобразовать в формат TDateTime.
Подскажите как это сделать в MS SQL?
спасибо.
Anatoly Podgoretsky (2008-08-11 16:32:00) [1]Не надо приводить к своему, как раз для этого, для независимости и существует UTC.
UTC <> GMT - хотя в Линуксовских серверах почему то ставят знак равенства, пишут GMT но читать надо UTC, но можно и ошибиться, если источник с нулевого меридиана.
В Виндоус вся работа ведется в основном с UTC, оно же System, которое потом преобразовывается в локальное (Local) но его легко можно перевести в любую временную зону, а вот обратно нет.
Alexandra (2008-08-11 09:35:00) [2]спасибо!
sniknik (2008-08-07 17:28:00) [3]с гринвича локальный просто так не получить... как раз таки потому, что "информация с разных городов", у каждого разный часовой пояс, переход на зимнее время то делается то нет, а когдато вообще не делалось...
просто можно только "привести" время к своему, т.е. сколько было по местному тогда когда "тот" город сохранил свое время.
если без учета, что во время сохранения действовало "зимнее" время, то добавить к вашему разницу в минутах - DATEDIFF(mi, GETUTCDATE(), GETDATE()).
... или отнять? сам смотри.
и еще посмотри на sql.ru, видел там когдато более сложные процедуры, учитывающие эти переходы/не переходы времени.
Anatoly Podgoretsky (2008-08-07 14:51:00) [4]По Гринчичу или UTC
Alexandra (2008-08-07 14:16:00) [5]>sniknik
у меня получилось время это по гринвичу,
а нам надо локальное. И я не могу просто прибавить или отнять часы, т к информация с разных городов. Теперь что подскажите делать ?
Alexandra (2008-08-06 15:27:00) [6]> sniknik
Да, у меня точно этот формат .спасибо попробую..
sniknik (2008-08-06 15:04:00) [7]> The number of seconds since 0000 Universal Time Code (UTC) 1970
уточни, у тебя точно дата представлена количество секунд с 1970г (как написано) или гринвичь? (GET UTCDATE()),
если секунды то очень просто, DATEADD + BOL (типа F1 для mssql), добавляешь их к основе (1970г) получаешь необходимое.
Medbe}I{onok XML (2008-08-06 14:49:00) [8]а на mssql есть тип tdatetime?