programing

MSSQL GetDate()를 사용할 때 어떻게 날짜만 알 수 있습니까?

muds 2023. 5. 6. 16:47
반응형

MSSQL GetDate()를 사용할 때 어떻게 날짜만 알 수 있습니까?

DELETE from Table WHERE Date > GETDATE();

GETDATE()에는 시간이 포함됩니다.얻는 대신에

2011-01-26 14:58:21.637

어떻게 하면 얻을 수 있는 것:

2011-01-26 00:00:00.000

SQL Server에 약간 치우침

요약

DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)

SQL Server 2008에는date타이프를 쳐도 됩니다.그러니 그냥 사용하세요.

CAST(GETDATE() AS DATE)

편집: 하루를 추가하려면 "0" 전날과 비교합니다.

DATEADD(day, DATEDIFF(day, -1, GETDATE()), 0)

사이버키위에서:

두 가지 기능을 포함하지 않는 대안은 다음과 같습니다(+1은 괄호 안에 있거나 괄호 안에 있을 수 있습니다).

DATEDIFF(DAY, 0, GETDATE() +1)

DateDiff숫자를 반환하지만 이 표현식을 직접 VARCHAR로 변환하는 경우를 제외하고는 모든 목적에서 이 표현식이 날짜로 작동합니다. 이 경우 GETDATE(예: GETDATE)에 직접 변환 접근 방식을 사용했을 수 있습니다.

convert(varchar, GETDATE() +1, 102)

SQL Server 2008의 가장 적합하고 인덱스 친화적인 방법은

DELETE from Table WHERE Date > CAST(GETDATE() as DATE);

이전 SQL Server 버전의 경우 날짜 함수가 varchar로 변환하는 것보다 더 빨리 작동합니다.지역 설정 때문에 바르샤르로 변환해도 잘못된 결과를 얻을 수 있습니다.

DELETE from Table WHERE Date > DATEDIFF(d, 0, GETDATE());

참고: 포장할 필요가 없습니다.DATEDIFF다른 것과 함께DATEADD

데이터베이스에 따라 다릅니다.사용 중인 데이터베이스 엔진을 지정하지 않았습니다.

예: Postgre에서사용자가 캐스트하는 SQL(날짜 기준 내 값).

SELECT CONVERT(DATETIME, CONVERT(varchar(10), GETDATE(), 101))

사용할 수 있습니다.

DELETE from Table WHERE Date > CONVERT(VARCHAR, GETDATE(), 101);
CONVERT(varchar,GETDATE(),102)

여기에는 몇 가지 해결책이 있습니다 ;)

http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm

언급URL : https://stackoverflow.com/questions/4809956/how-do-i-get-just-the-date-when-using-mssql-getdate

반응형