У меня есть таблица, которая собирает формы, отправленные с нашего веб-сайта, но по какой-то причине, когда они создали таблицу, они не поместили метку времени в таблицу. Я хочу, чтобы он вводил точную дату и время, когда была введена запись.
Я знаю, что где-то там, но я не могу найти способ установить значение по умолчанию (как в Access, вы используете getNow()
или Now()
), но я не знаю, где его поставить.
sql-server
datetime
stephmoreland
источник
источник
Ответы:
Для изменения существующего столбца в существующей таблице:
источник
TheQ
предполагает, что вы изменяете существующий столбец, что, как мне кажется, не так? Смотрите мой ответ для кода, чтобы добавить новый столбец с этим ограничением по умолчанию.GETUTCDATE()
вместоGETDATE()
Это также можно сделать через графический интерфейс SSMS.
(getdate())
по умолчанию или поле привязки, как показано нижеисточник
dateadd(minute, 10, GetDate())
посмотреть, работает ли это.В этой таблице в SQL Server укажите значение по умолчанию для этого столбца
CURRENT_TIMESTAMP
. Тип данных этого столбца может быть datetime или datetime2.например
источник
CURRENT_TIMESTAMP
возвращаетdatetime
значение в местном часовом поясе компьютера. Этого следует избегать. Вместо этого используйте,SYSUTCDATETIME
который возвращаетdatetime2
в UTC.Пока помеченный ответ правильный с:
При добавлении значений даты и времени по умолчанию в столбец всегда следует помнить о часовых поясах.
Скажем, например, что это
datetime
значение предназначено для указания того, когда участник присоединился к веб-сайту, и вы хотите, чтобы оно отображалось обратно пользователю,GETDATE()
даст вам время сервера, поэтому может показывать расхождения, если пользователь находится в другой локали сервера.Если вы планируете иметь дело с международными пользователями, в некоторых случаях лучше использовать GETUTCDATE () , которая:
При получении значений интерфейсное приложение / веб-сайт должны преобразовать это значение из времени UTC в языковой стандарт / язык пользователя, запрашивающего его.
источник
Запретить пустые значения в столбце и установить значение по умолчанию для столбца
getdate()
источник
Синтаксис этого при создании новой таблицы:
источник
Это работает для меня ...
источник
Это также работает:
Или:
источник
Это сработало для меня. Я использую SQL Developer с Oracle DB:
источник
Чтобы было проще следовать, я обобщу приведенные выше ответы:
Допустим, таблица называется Customer, она имеет 4 столбца / меньше или больше ...
Вы хотите добавить новый столбец в таблицу, где каждый раз, когда происходит вставка ..., этот столбец хранит запись времени, когда произошло событие.
Решение:
добавьте новый столбец, скажем, timepurchase - новый столбец, в таблицу с типом данных datetime .
Затем выполните следующее изменение:
источник
Допустим, вы создали таблицу базы данных для системы регистрации.
Сейчас пара человек регистрируется.
Затем вы понимаете, что вам нужна временная метка, когда они регистрируются.
Если это приложение ограничено географически локализованным регионом, то вы можете использовать время локального сервера с
GETDATE()
. В противном случае вы должны прислушаться к мнению Таннера о глобальной аудитории сGETUTCDATE()
использованием значения по умолчанию.Добавьте столбец со значением по умолчанию в одном утверждении, как этот ответ .
Давайте возьмем другого владельца регистрации и посмотрим, как выглядят данные.
источник
В SQLPlus при создании таблицы это выглядит как
SQL> создать таблицу Test
SQL> вставить в Test (id) значения (1);
источник