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



пс
и, собственно, любой "уважающий себя" грид/текстбокс умеет это делать и сам ...
...
Рейтинг: 0 / 0
21.09.2020, 22:56
    #40001130
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
нет, не отображать, а "иметь", у меня сотни строк кода работают в access именно со временем. Мне в sql таблице нужно поле/столбец типа время, а есть только datetime или varchar - на выбор....и то и другое танцы с бубном в коде, учитывая что часть даты выглядит как 1900-1-1
...
Рейтинг: 0 / 0
21.09.2020, 23:05
    #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
21.09.2020, 23:27
    #40001133
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
1. Вычисляемые столбец в таблице
Код: sql
1.
alter table ... add [только время] as cast([дата+время] as time)


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

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

Но и не забывай про аргументы комментаторов выше: попробуй подумать, насколько тебе действительно нужно хранить время отдельно от даты.
...
Рейтинг: 0 / 0
22.09.2020, 12:42
    #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
22.09.2020, 21:55
    #40001473
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
Благодарю всех за советы, спасибо!! помогло.
...
Рейтинг: 0 / 0
22.09.2020, 22:32
    #40001476
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
рано радовался. вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
Мне необходимо создать реальный столбец и триггером заполнять в него "время". Может кто пример привести?
...
Рейтинг: 0 / 0
22.09.2020, 22:33
    #40001477
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
Агрох, нужно поле дата, без вариантов. можете привести пример триггера или функции?
...
Рейтинг: 0 / 0
22.09.2020, 22:36
    #40001479
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977
рано радовался. вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
Чушь. В MSSQL не бывает полей без типа. Даже вычисляемых.
...
Рейтинг: 0 / 0
22.09.2020, 23:12
    #40001487
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
Гавриленко Сергей Алексеевич, этот сайт крайне дружественен с точки зрения вставки графической информации... лучше один раз увидеть. при выполнении этой строки
(alter table dbo.AllDeals add [TimeDeal] as cast([TimeTorg] as time)
создается столбец который пр просмотре design НЕ ИМЕЕТ значения в поле Data Type.
Когда такой столбец линкуется к access, естественно, по умолчанию данные в нем строковые.
Поэтому нужно видимо создать обычный столбец и тригером INSERT обновлять в нем значение этого поля
...
Рейтинг: 0 / 0
23.09.2020, 02:04
    #40001494
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977,
может стоит просто скопировать тип? :
...
Рейтинг: 0 / 0
23.09.2020, 03:15
    #40001495
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977,

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

З.Ы. А про вот эти графические редакторы -- "Не читайте советских газет до обеда" (с). Это баловство, ясельная группа детсада.
...
Рейтинг: 0 / 0
23.09.2020, 03:19
    #40001496
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
Вот вам тоже картинок нарисую:
...
Рейтинг: 0 / 0
23.09.2020, 03:26
    #40001497
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977Когда такой столбец линкуется к access, естественно, по умолчанию данные в нем строковые.А вот как линковать в Access поля типа time чтобы было так, как вам хочется, спрашивать надо в разделе про Access .
...
Рейтинг: 0 / 0
23.09.2020, 07:02
    #40001511
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977
вычисляемый столбец по умолчанию не имеет типа, поэтому access воспринимает его как строковое поле со всеми вытекающими.
нее,
это Акс, просто, "не понимает" этих типов : ни Time, ни Date, ни DateTime2 - вообщем всех новых (после 2000 сервера) + bigint
...
Рейтинг: 0 / 0
23.09.2020, 21:42
    #40001895
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
как я понял, мне остается только триггер.... просто бывают ситуации когда подгружаются быстро (10 сек) более, допустим, 400 000 записей, триггер сильно затормозит процесс?
...
Рейтинг: 0 / 0
23.09.2020, 21:51
    #40001898
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
kvazar1977
как я понял, мне остается только триггер.... просто бывают ситуации когда подгружаются быстро (10 сек) более, допустим, 400 000 записей, триггер сильно затормозит процесс?
Как триггер поможет начать аксесу понимать тип time?
...
Рейтинг: 0 / 0
23.09.2020, 22:53
    #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
23.09.2020, 23:45
    #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
24.09.2020, 20:48
    #40002323
kvazar1977
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заполняемый автоматически столбец
Гавриленко Сергей Алексеевич, не нужно ломать о меня копья, я ценю помощь, но я работаю с БД 25 лет, просто непрофессионально , но плотно. с sql пришло время, нет проблем разберусь, у меня шкафы книг, хотел быстро решить именно этот вопрос.

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

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

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


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