powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите заполнить таблицу
14 сообщений из 14, страница 1 из 1
Помогите заполнить таблицу
    #39916076
PauL Etta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал таблицу:

create table t_logs
(
query_finish timestamp,
session_id int,
cpu_elapsed int,
comment varchar(100)
)

:
query_finish session_id cpu_elapsed comment

Не могу наполнить выдает ошибку при запросе, например:

insert into t_logs values('2019-11-29 09:31:51', 97367, 2500, 'insert period 4')

Сообщение 273, уровень 16, состояние 1, строка 57
Не удалось вставить явное значение в столбец отметки времени. Используйте INSERT со списком столбцов, чтобы исключить столбец отметки времени, либо вставьте DEFAULT в столбец отметки времени.

Время выполнения: 2020-01-19T19:34:27.2713244+03:00
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916090
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timestamp is the synonym for the rowversion data type and is subject to the behavior of data type synonyms. In DDL statements, use rowversion instead of timestamp wherever possible.

The timestamp syntax is deprecated.

This tracks a relative time within a database, not an actual time that can be associated with a clock.
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916093
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PauL Etta
Сообщение 273, уровень 16, состояние 1, строка 57
Не удалось вставить явное значение в столбец отметки времени. Используйте INSERT со списком столбцов, чтобы исключить столбец отметки времени, либо вставьте DEFAULT в столбец отметки времени.
Код: sql
1.
2.
3.
4.
5.
6.
7.
create table t_logs
(
    query_finish datetime,
    session_id int,
    cpu_elapsed int,
    comment varchar(100)
)
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916099
PauL Etta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Сообщение 242, уровень 16, состояние 3, строка 96
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Выполнение данной инструкции было прервано.

Время выполнения: 2020-01-19T20:52:45.2673990+03:00
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916102
PauL Etta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не получается все равно, не понятно почему возникает ошибка
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916103
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с версии сервера

Код: sql
1.
select @@version



и что у вас в региональными настройками
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916129
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PauL Etta
alexeyvg,

Сообщение 242, уровень 16, состояние 3, строка 96
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Выполнение данной инструкции было прервано.

Время выполнения: 2020-01-19T20:52:45.2673990+03:00
Потому что сервер не понимает, у вас 29 число 11 месяца, или 11 число 29 месяца.

Пишите дату в универсальном формате, и явно перечисляйте поля таблицы:
Код: sql
1.
2.
insert into t_logs(query_finish, session_id, cpu_elapsed, comment) 
values('20191129 09:31:51', 97367, 2500, 'insert period 4')
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916397
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PauL Etta,

https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-ver15

тип timestamp = rowversion = (BINARY(8) или VARBINARY(8)) и != DATETIME
нельзя вставить явно INSERTом в столбец с типом timestamp ( отметка времени ) значение, оно создается сервером, об этом и ошибка

авторНе удалось вставить явное значение в столбец отметки времени . Используйте INSERT со списком столбцов, чтобы исключить столбец отметки времени , либо вставьте DEFAULT в столбец отметки времени.


вот что происходит

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE t_logs
             (query_finish TIMESTAMP
            , session_id   INT
            , cpu_elapsed  INT
            , comment      VARCHAR(100)
             );


INSERT INTO t_logs(
       session_id
     , cpu_elapsed
     , comment
              )
OUTPUT 
       inserted.*
VALUES( 
       97367
     , 2500
     , 'insert period 4'
       );



Код: sql
1.
2.
3.
4.
5.
query_finish       session_id  cpu_elapsed comment
------------------ ----------- ----------- ----------------------------------------------------------------------------------------------------
0x00000000000007D3 97367       2500        insert period 4

(затронута одна строка)
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916405
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PauL Etta,

Если нужна ещё и дата, с указанным форматом, то в таком случае вот так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE t_logs
             (query_finish TIMESTAMP
            , session_id   INT
            , cpu_elapsed  INT
            , comment      VARCHAR(100)
            , dt           DATETIME
             );

SET DATEFORMAT YMD

INSERT INTO t_logs(
       session_id
     , cpu_elapsed
     , comment
     , dt
         )
VALUES( 
       97367
     , 2500
     , 'insert period 4'
     , '2019-11-29 09:31:51'
       );



Код: sql
1.
2.
3.
query_finish       session_id  cpu_elapsed comment                                                                                              dt
------------------ ----------- ----------- ---------------------------------------------------------------------------------------------------- -----------------------
0x00000000000007D5 97367       2500        insert period 4                                                                                      2019-11-29 09:31:51.000
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916413
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
entrypoint
PauL Etta,

Если нужна ещё и дата, с указанным форматом, то в таком случае вот так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE TABLE t_logs
             (query_finish TIMESTAMP
            , session_id   INT
            , cpu_elapsed  INT
            , comment      VARCHAR(100)
            , dt           DATETIME
             );

SET DATEFORMAT YMD

INSERT INTO t_logs(
       session_id
     , cpu_elapsed
     , comment
     , dt
         )
VALUES( 
       97367
     , 2500
     , 'insert period 4'
     , '2019-11-29 09:31:51'
       );




Код: sql
1.
2.
3.
query_finish       session_id  cpu_elapsed comment                                                                                              dt
------------------ ----------- ----------- ---------------------------------------------------------------------------------------------------- -----------------------
0x00000000000007D5 97367       2500        insert period 4                                                                                      2019-11-29 09:31:51.000

Про формат непонятно. Что имеется в виду? Может, тип?
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916429
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

имеется ввиду формат даты, у Вас это
Код: sql
1.
2019-11-29 09:31:51



обычно это
Код: sql
1.
20191129 09:31:51



чтобы съело без ошибки нужен
Код: sql
1.
SET DATEFORMAT YMD
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916483
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
entrypoint

обычно это
Код: sql
1.
20191129 09:31:51



чтобы съело без ошибки нужен
Код: sql
1.
SET DATEFORMAT YMD


Рука-лицо
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916551
PauL Etta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Спасибо, помогло!)
...
Рейтинг: 0 / 0
Помогите заполнить таблицу
    #39916662
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руслан Дамирович

ицо

WTF ?!!!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите заполнить таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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