[sql-server] DateTime 데이터베이스 필드를 “Now”로 설정합니다.

VB.net 코드에서 SQL 매개 변수로 요청을 생성합니다. DateTime 매개 변수를 DateTime 값으로 설정했습니다. 이제 요청이 어떻게 생겼습니까?

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

또는

UPDATE table SET date = GETDATE();

첫 번째 경우에는 모든 레코드가 정확히 같은 시간으로 설정 될 것이라고 확신합니다. 두 번째 경우에는 DBMS가 요청을 처리하는 방법에 따라 다릅니다. 두 번째 질문으로 연결됩니다. NOW ()로 큰 테이블을 업데이트 할 때 SQL Server가 동일한 날짜와 시간을 설정합니까?

편집 : NOW () (SQL Server에 존재하지 않음)를 GETDATE ()로 대체했습니다.



답변

SQL에서는 다음을 사용해야합니다 GETDATE().

UPDATE table SET date = GETDATE();

NOW()기능 이 없습니다 .


질문에 답하려면 :

큰 테이블에서는 함수가 각 행에 대해 평가되므로 업데이트 된 필드에 대해 다른 값을 얻게됩니다.

따라서 귀하의 요구 사항이 모두 동일한 날짜로 설정하는 것이라면 다음과 같이 할 것입니다 (예상되지 않음).

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

UPDATE table SET date = @currDate;


답변

GETDATE ()의 대안은 CURRENT_TIMESTAMP입니다. 똑같은 일을합니다.


답변

사용 GETDATE ()

현재 데이터베이스 시스템 타임 스탬프를 데이터베이스 시간대 오프셋없이 datetime 값으로 반환합니다. 이 값은 SQL Server 인스턴스가 실행중인 컴퓨터의 운영 체제에서 파생됩니다.

UPDATE table SET date = GETDATE()


답변