Подтвердить что ты не робот

Установите поле базы данных DateTime в значение "Сейчас"

В коде VB.net я создаю запросы с параметрами SQL. Я установил параметр DateTime в значение DateTime.Now, как будет выглядеть мой запрос?

UPDATE table SET date = "2010/12/20 10:25:00";

или

UPDATE table SET date = GETDATE();

В первом случае я уверен, что каждая запись будет установлена ​​в одно и то же время. Во втором случае это зависит от того, как СУБД обрабатывает запрос. Который приводит меня ко второму вопросу: SQL Server устанавливает одинаковые дату и время при обновлении большой таблицы с помощью NOW()?

EDIT: заменил NOW() (который не существует в SQL Server) с помощью GETDATE().

4b9b3361

Ответ 1

В SQL вам нужно использовать GETDATE():

UPDATE table SET date = GETDATE();

Нет функции NOW().


Чтобы ответить на ваш вопрос:

В большой таблице, поскольку функция оценивается для каждой строки, вы получите разные значения для обновленного поля.

Итак, если ваше требование - установить все на ту же дату, я бы сделал что-то вроде этого (untested):

DECLARE @currDate DATETIME;
SET @currDate = GETDATE();

UPDATE table SET date = @currDate;

Ответ 2

Альтернативой GETDATE() является CURRENT_TIMESTAMP. То же самое.

Ответ 3

Используйте GETDATE()

Возвращает текущую систему баз данных временная метка как значение даты и времени без смещение часового пояса базы данных. Эта значение получается из системы, на которой экземпляр SQL Server запущен.

UPDATE table SET date = GETDATE()