Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите заполнить таблицу / 14 сообщений из 14, страница 1 из 1
19.01.2020, 19:35
    #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
19.01.2020, 20:15
    #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
19.01.2020, 20:27
    #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
19.01.2020, 20:52
    #39916099
PauL Etta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заполнить таблицу
alexeyvg,

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

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

Код: sql
1.
select @@version



и что у вас в региональными настройками
...
Рейтинг: 0 / 0
19.01.2020, 22:23
    #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
20.01.2020, 15:58
    #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
20.01.2020, 16:13
    #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
20.01.2020, 16:23
    #39916413
iap
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
20.01.2020, 16:41
    #39916429
entrypoint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заполнить таблицу
iap,

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



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



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

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



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


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

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

ицо

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


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