Захват метки времени INSERT в таблице SQL Server
При вставке данных в таблицы иногда нам нужно зафиксировать временную метку вставки в таблицу. Есть очень простой способ, который мы могли бы использовать для фиксации отметки времени вставленных строк в таблице.
Захватите метку времени вставленных строк в таблице с ограничением DEFAULT в SQL Server.
Используйте ограничение DEFAULT при создании таблицы:
Синтаксис:
CREATE TABLE TableName (ColumName INT, ColumnDateTime DATETIME DEFAULT CURRENT_TIMESTAMP) ИДТИ
Пример:
Создадим таблицу с именем GeekTab.
СОЗДАТЬ ТАБЛИЦУ GeekTab (ID INT, InDtTm DATETIME DEFAULT CURRENT_TIMESTAMP); ИДТИ
Вставим несколько значений в таблицу.
ВСТАВИТЬ ЗНАЧЕНИЯ GeekTab (ID) (1), (2); ИДТИ
ВСТАВИТЬ В ЗНАЧЕНИЯ GeekTab (ID) (3), (4); ИДТИ
Теперь давайте выберем значение из таблицы.
ВЫБРАТЬ * ИЗ GeekTab; ИДТИ
Выход: Я БЫ InDtTm 1 2020-12-30 13: 08: 54.193 2 2020-12-30 13: 08: 54.193 3 2020-12-30 13: 10: 53.163 4 2020-12-30 13: 10: 53.163
Заключение:
Когда мы выбираем значение из таблицы GeekTab , мы могли видеть, что у него есть текущая временная метка в таблице в столбце InDtTm. Это потому, что столбец InDtTm был создан с DATETIME DEFAULT CURRENT_TIMESTAMP.
Пример на основе сценария:
Предположим, у нас есть таблица «EmployeeTab», каждый раз, когда новый сотрудник присоединяется к компании, в таблицу вставляется новая запись:
СОЗДАТЬ ТАБЛИЦУ EmployeeTab (имя varchar (100), ID INT, Location varchar (100), InDtTm DATETIME DEFAULT CURRENT_TIMESTAMP);
ВЫБЕРИТЕ имя, идентификатор, местоположение ОТ EmployeeTab;
Имя | Я БЫ | Место расположения |
---|---|---|
Анкит | 234 | Дели |
Четан | 456 | Нойда |
Хуши | 549 | Нойда |
Микеш | 654 | Дели |
Варун | 876 | Нойда |
Капил | 650 | Дели |
Чтобы получить дату и время вставки для каждой записи как 'JoinDate', можно использовать следующий запрос:
ВЫБЕРИТЕ имя, идентификатор, расположение, InDtTm как JoinDate ОТ EmployeeTab;
Имя | Я БЫ | Место расположения | Дате вступления |
---|---|---|---|
Анкит | 234 | Дели | 2019-11-24 10: 10: 53.163 |
Четан | 456 | Нойда | 2018-07-14 10: 12: 34.163 |
Хуши | 549 | Нойда | 2019-05-04 10: 15: 43.163 |
Микеш | 654 | Дели | 2018-09-21 10: 13: 13.163 |
Варун | 876 | Нойда | 2019-10-24 10: 11: 33.163 |
Капил | 650 | Дели | 2018-12-14 10: 10: 53.163 |
Примечание. При использовании этой функции есть одно исключение: если кто-либо вставит явное значение в столбец ColumnDateTime, столбец будет иметь только что вставленное значение, а не значение по умолчанию.