powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужно писать только время
9 сообщений из 9, страница 1 из 1
Нужно писать только время
    #32047045
madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста.
Необходимо хранить время и дату в разных полях.
Когда я пишу запрос:

insert into station_logs (date, time) values ('20.08.2002', '11:45')

В таблице получается: date - '20.08.2002', а time - '01.01.1900 11:45'.

Как сделать так, чтобы в поле time не добавлялась дата '01.01.1900'?
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047048
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле Time должно быть символьного типа, а не DateTime или SmallDateTime
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047049
madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно ли использовать именно datetime?
У меня ISA Server пишет в datetime только время ...
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047052
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для MS SQL - невозможно.

Поскольку в типах DateTime и SmallDateTime предполагается, что отсчет ведется от 01.01.1900. Т.е. для MS SQL нулевая (не заданная) дата и означает 01.01.1900.

Это связано со способом хранения подобных типов в MS SQL.

Как вариант, можешь анализировать полученное значение и если там стоит дата 01.01.1900, то следует считывать только время.

Как эксперимент, напиши в QA такой простенький пример

DECLARE @aa datetime, @bb VarChar(10)
set @aa='11:45'
set @bb='11:45'
select @aa, @bb
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047055
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати, если ты посмотришь значение твоего поля Date, то там будет стоять что-то вроде:

20.08.2002 00:00:00.000

Т.е. строго говоря, в MS SQL просто нет типов содержащих только дату или только время. Всегда все вместе. И бремя разделения даты от времени лежит на разработчике.
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047056
madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то вся и проблема, что 20.08.2002 без времени пишет. И если ручками время в таблиу вбить то бутет 11:00.
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047058
soni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже ни чего не получилось с минутами и секундами. :(
Может Вам стоит попробывать хранить эти значения в строковом формате?
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047060
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант предлагаю сделать VIEW, а дату хранить вообще в одном поле (все)
а VIEW будет возвращать в одном столбце дату, в другом - время...

для этого можно вполне использовать функции работы с datetime.
допустим использовать так
Код: plaintext
1.
2.
CREATE VIEW AS
SELECT convert(varchar( 30 , [date],  104 ) as [date], convert(varchar( 30 ), [date],  108 ) as [time]
...
Рейтинг: 0 / 0
Нужно писать только время
    #32047062
madman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это уже принципиально - почему ISA Server 2000 может в datetime только время писать, ручками таблицу исправить получается, а SQL запросом нельзя?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужно писать только время
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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