Установите поле базы данных 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().
Ответы
Ответ 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()