powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / заполняемый автоматически столбец
25 сообщений из 37, страница 1 из 2
заполняемый автоматически столбец
    #40001122
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу не пинать, sql только начал осваивать. Прошу направить. Есть БД - в 1 поле попадает по odbc дата формата datetime (около 5-20 записей в секунду приходит)
А для работы нужно только время, возможно ли сделать столбец для автоматического ОНЛАЙН заполнения значений типа Time, чтобы не конвертировать все это в коде на стороне клиента?
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001126
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в чем неудобство - приходит дата 1900-1-1 + время, т.е. часть даты не имеет смысла, но от нее не денешься.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001129
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
в чем неудобство - приходит дата 1900-1-1 + время, т.е. часть даты не имеет смысла, но от нее не денешься.
для чего это нужно ?
Просто отображать, на клиенте, время без даты ?
Если "да", то просто форматируй поле в запросе-источнике
Код: sql
1.
select format(getdate(), 'hh\:mm'), format(getdate(), 'HH\:mm')



пс
и, собственно, любой "уважающий себя" грид/текстбокс умеет это делать и сам ...
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001130
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не отображать, а "иметь", у меня сотни строк кода работают в access именно со временем. Мне в sql таблице нужно поле/столбец типа время, а есть только datetime или varchar - на выбор....и то и другое танцы с бубном в коде, учитывая что часть даты выглядит как 1900-1-1
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001131
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
нет, не отображать, а "иметь", у меня сотни строк кода работают в access именно со временем. Мне в sql таблице нужно поле/столбец типа время.
"иметь", что бы что с ним делать ? :)
Ты его УЖЕ имеешь. 1900-1-1 - это "нулевая дата". Точка отсчета, т.с.
Просто не обращай на неё внимание и всё
Код: sql
1.
2.
3.
4.
select cast('19000101 10:00' as datetime) + cast('19000101 00:40' as datetime)

-----------------------
1900-01-01 10:40:00.000
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001133
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вычисляемые столбец в таблице
Код: sql
1.
alter table ... add [только время] as cast([дата+время] as time)


2. Сделать представление и работать через него.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001196
Агрох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть тип данных time.
Почитай про триггеры - они, в том числе, используются для постобработки входящих данных и автоматического заполнения столбцов и даже других таблиц.

Ещё вариант, вообще убрать поле с датой в таблице и заполнять её через функцию, внутри которой входящая datetime будет преобразовываться в time.

Но и не забывай про аргументы комментаторов выше: попробуй подумать, насколько тебе действительно нужно хранить время отдельно от даты.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001248
MaksK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TABLE [dbo].[Table_TEST](
[ID] [int] NULL,
[DATEZAPIS] [datetime] NULL,
[TIMEZAPIS] AS (CONVERT([time],[DATEZAPIS],(108)))
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table_TEST', @level2type=N'COLUMN',@level2name=N'DATEZAPIS'
GO
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001473
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех за советы, спасибо!! помогло.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001476
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рано радовался. вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
Мне необходимо создать реальный столбец и триггером заполнять в него "время". Может кто пример привести?
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001477
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Агрох, нужно поле дата, без вариантов. можете привести пример триггера или функции?
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001479
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
рано радовался. вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
Чушь. В MSSQL не бывает полей без типа. Даже вычисляемых.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001487
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, этот сайт крайне дружественен с точки зрения вставки графической информации... лучше один раз увидеть. при выполнении этой строки
(alter table dbo.AllDeals add [TimeDeal] as cast([TimeTorg] as time)
создается столбец который пр просмотре design НЕ ИМЕЕТ значения в поле Data Type.
Когда такой столбец линкуется к access, естественно, по умолчанию данные в нем строковые.
Поэтому нужно видимо создать обычный столбец и тригером INSERT обновлять в нем значение этого поля
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001494
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977,
может стоит просто скопировать тип? :
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001495
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977,

Тип вашего вычисляемого поля можно узнать из sys.columns, information_schema.columns или выполнив sp_help 'имя таблицы'. Когда там найдете хоть одно поле, у которого нет типа, дайте знать.

З.Ы. А про вот эти графические редакторы -- "Не читайте советских газет до обеда" (с). Это баловство, ясельная группа детсада.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001496
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам тоже картинок нарисую:
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001497
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977Когда такой столбец линкуется к access, естественно, по умолчанию данные в нем строковые.А вот как линковать в Access поля типа time чтобы было так, как вам хочется, спрашивать надо в разделе про Access .
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001511
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
нее,
это Акс, просто, "не понимает" этих типов : ни Time, ни Date, ни DateTime2 - вообщем всех новых (после 2000 сервера) + bigint
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001895
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как я понял, мне остается только триггер.... просто бывают ситуации когда подгружаются быстро (10 сек) более, допустим, 400 000 записей, триггер сильно затормозит процесс?
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001898
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
как я понял, мне остается только триггер.... просто бывают ситуации когда подгружаются быстро (10 сек) более, допустим, 400 000 записей, триггер сильно затормозит процесс?
Как триггер поможет начать аксесу понимать тип time?
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001905
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич
kvazar1977
как я понял, мне остается только триггер.... просто бывают ситуации когда подгружаются быстро (10 сек) более, допустим, 400 000 записей, триггер сильно затормозит процесс?
Как триггер поможет начать аксесу понимать тип time?


на стороне sql servera сделать поле datetime, преобразовывать имеющиеся данные времени типа 1/1/1900 20:05:05 в 29/09/2020 20:05:00, и этот формат на стороне акцесса уже обрабатывать в запросах. например, мне нужно сравнивать его со значением Now() в формате where between .. и ..


у меня есть данные из квика о времени сделки типа 1/1/1900 15:56:01
преобразую их в 23/09/2020 15:56:01 datatime и отдаю в акцесс в удобоваримом формате.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40001911
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
на стороне sql servera сделать поле datetime, преобразовывать имеющиеся данные времени типа 1/1/1900 20:05:05 в 29/09/2020 20:05:00, и этот формат на стороне акцесса уже обрабатывать в запросах. например, мне нужно сравнивать его со значением Now() в формате where between .. и ..
Мда.

Стоит задача: сравнить ахулион значений с одним значением now(). Но ахулион значений, как назло, имеет дату 1/1/1900, а now() содержит текущую и так просто не сравнить. Что же делать? Как же поступить правильному архитектору?

Правильно!

Настоящий архитектор преобразует ахулион значений к текущей дате, вместо того, чтобы в одном значении now() заменить дату на 1/1/1900 перед сравнением. Бинго!
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40002323
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, не нужно ломать о меня копья, я ценю помощь, но я работаю с БД 25 лет, просто непрофессионально , но плотно. с sql пришло время, нет проблем разберусь, у меня шкафы книг, хотел быстро решить именно этот вопрос.

В базах access десятки запросов работают с полем время, и именно поэтому в этом поле должно быть Time, а на руках сейчас нулевая дата со временем из sql.

квик - sql - access. я уж молчу что квик отдает дату и время в виде строк, вот уже очевидное решение.
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40002329
kvazar1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, bigint понимает, я с ним работаю..
...
Рейтинг: 0 / 0
заполняемый автоматически столбец
    #40002332
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvazar1977
Гавриленко Сергей Алексеевич, не нужно ломать о меня копья, я ценю помощь, но я работаю с БД 25 лет, просто непрофессионально , но плотно. с sql пришло время, нет проблем разберусь, у меня шкафы книг, хотел быстро решить именно этот вопрос.
Я не ломаю. Но просто это же ... ну, логика банальная: одно значение менять или много.

kvazar1977В базах access десятки запросов работают с полем время, и именно поэтому в этом поле должно быть Time, а на руках сейчас нулевая дата со временем из sql.Раз есть какие-то запросы, которые хочется сохранить при миграции данных в SQL Server из аксеса, спрашивать, как делать, надо не здесь, а в соответствующем разделе .
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / заполняемый автоматически столбец
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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