Комплексное руководство по добавлению отметки даты и времени в SQL Server

В SQL Server добавление метки даты и времени в таблицу является общим требованием. Метка даты и времени предоставляет ценную информацию о том, когда конкретная запись была создана или изменена. В этой статье мы рассмотрим несколько методов добавления метки даты и времени в SQL Server, а также приведем примеры кода для каждого метода.

Метод 1: использование функции GETDATE()
Функция GETDATE() возвращает текущую системную дату и время в SQL Server. Вы можете использовать эту функцию при вставке или обновлении записи, чтобы сохранить временную метку.

Пример:

CREATE TABLE YourTable (
    ID INT PRIMARY KEY,
    Data VARCHAR(100),
    Timestamp DATETIME DEFAULT(GETDATE())
);

Метод 2: использование функции CURRENT_TIMESTAMP
Функция CURRENT_TIMESTAMP аналогична GETDATE() и извлекает текущую дату и время.

Пример:

CREATE TABLE YourTable (
    ID INT PRIMARY KEY,
    Data VARCHAR(100),
    Timestamp DATETIME DEFAULT(CURRENT_TIMESTAMP)
);

Метод 3: использование триггера
Триггеры — это специальные типы хранимых процедур, которые автоматически выполняются при возникновении определенного события. Вы можете создать триггер для обновления столбца временной метки всякий раз, когда над таблицей выполняется операция INSERT или UPDATE.

Пример:

CREATE TABLE YourTable (
    ID INT PRIMARY KEY,
    Data VARCHAR(100),
    Timestamp DATETIME
);
CREATE TRIGGER AddTimestamp
ON YourTable
AFTER INSERT, UPDATE
AS
BEGIN
    UPDATE YourTable
    SET Timestamp = GETDATE()
    WHERE ID IN (SELECT ID FROM INSERTED)
END;

Метод 4: использование ограничения DEFAULT
Вы также можете использовать ограничение DEFAULT для добавления метки даты и времени в столбец. Это ограничение автоматически назначает текущую дату и время при вставке новой записи.

Пример:

CREATE TABLE YourTable (
    ID INT PRIMARY KEY,
    Data VARCHAR(100),
    Timestamp DATETIME DEFAULT(GETDATE())
);

Метод 5: использование функции SYSDATETIME()
Функция SYSDATETIME() извлекает текущую дату и время с более высокой точностью, чем GETDATE() или CURRENT_TIMESTAMP.

Пример:

CREATE TABLE YourTable (
    ID INT PRIMARY KEY,
    Data VARCHAR(100),
    Timestamp DATETIME2 DEFAULT(SYSDATETIME())
);

В этой статье мы рассмотрели несколько методов добавления метки даты и времени в SQL Server. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям, независимо от того, использует ли он встроенные функции, такие как GETDATE() и CURRENT_TIMESTAMP, триггеры или ограничения по умолчанию. Используя эти методы, вы сможете эффективно отслеживать время создания и изменения записей в таблицах SQL Server.