Текущее время в качестве значения по умолчанию для «ВРЕМЕНИ» в Mysql - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь установить столбец в Phpmyadmin просто «ВРЕМЯ».Как я могу установить значение по умолчанию для текущего времени?Только время, без даты.

CURRENT_TIMESTAMP не работает, я также пытался сейчас (), но безуспешно.Я просмотрел документацию , но не нашел ничего конкретного по этому поводу.

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018

Выдержки из ссылки на документацию в вопросе:

Обработка явных значений по умолчанию с MySQL 8.0.13

Значение по умолчанию, указанное в DEFAULTПредложение может быть литеральной константой или выражением.За одним исключением, заключите значения по умолчанию для выражений в скобки, чтобы отличить их от значений по умолчанию для константных литералов.

[…]

Обработка явных значений по умолчанию до MySQL 8.0.13

За одним исключением, значение по умолчанию, указанное в предложении DEFAULT, должно быть литеральной константой;это не может быть функция или выражение.Это означает, например, что вы не можете установить по умолчанию для столбца даты значение функции, такой как NOW () или CURRENT_DATE.Исключением является то, что для столбцов TIMESTAMP и DATETIME вы можете указать CURRENT_TIMESTAMP в качестве значения по умолчанию.

Поэтому, когда поддерживается, используйте круглые скобки:

CREATE TABLE foo (
    what_time TIME NOT NULL DEFAULT (CURTIME())
);

Demo

0 голосов
/ 20 апреля 2019
create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;
0 голосов
/ 24 декабря 2018

Невозможно установить значение по умолчанию для столбца TIME или DATE.Переключитесь на столбец TIMESTAMP и используйте date(t_stamp), чтобы просто получить дату.Или time(t_stamp), чтобы просто получить время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...