powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа со временем и возникшие при этом проблемы.
3 сообщений из 3, страница 1 из 1
Работа со временем и возникшие при этом проблемы.
    #32029687
Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем! Я с SQL Server работаю недавно, по этому может быть эта проблема кому то покажется смешной, но из-за этого встала работа, и очень хотелось бы получить ответ (приамбула )
Есть таблица, в которую заноситься время работы механизма. Специфика задачи токова что в сутках может быть 23 или 24 или 25 часов. Так вот , то что до 23 часов проблем нет. 24 часа переводит в дату 31.12.1899 , ну а 25 часов вообще не вводит из-за ошибки. Стоит SQL Server 2000, поле datatime. Так вот собственно вопрос, это как-то лечится или всё надо хранить в другом формате. Может кто-нибудь сталкивался с таким. Дело в том, что в дальнейшем нужно выдавать сумму часов соответсвенно другие форматы надо как-то конвертить , или может я неправ ?
Очень хочется получить ответ
...
Рейтинг: 0 / 0
Работа со временем и возникшие при этом проблемы.
    #32029688
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateTime формально состоит из двух типов:
Date - дата с точностью до дня (должны учитываться високосные годы, реформы и прочие глюки),
Time - время в сутках (обычный числовой формат).

Фактически же в SQL Server оба этих типа явно не присутствуют,
поэтому их приходится эмулировать
(если появляется необходимость использовать эти типы отдельно).

Date можно легко засунуть в DateTime, обнулив время.
Time проще всего хранить в Integer как число секунд/миллисекунд,

PS: В рамках типа DateTime в сутках не может быть 23 часа (и 25 тоже). Такой уж у него формат.
...
Рейтинг: 0 / 0
Работа со временем и возникшие при этом проблемы.
    #32029690
Dikobrazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополняя предыдущего оратора:
В datetime обе части содержат 4 байта, и отвечающая за время содержит число миллисекунд (хотя на деле получается 1/300 секунды), так что чисто теоретически туда можно запихать больше 100 часов, однако на деле сервер ругается на любую попытку запихать туда больше 24 часов даже в двоичном формате (не говоря уже о преобразовании из строки).
Так, select cast(0x018b81ff as datetime) возвращает без 1 секунды (точнее, без 1/300 секунды) полночь, а select cast(0x018b8200 as datetime) уже выдает ошибку.
Так что, по-видимому, придется хранить время в своем формате.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа со временем и возникшие при этом проблемы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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