2015-02-05 7 views
0

GETDATE() SQL 함수에서 오는 초와 밀리 초를 제거/무시하고 싶습니다. I 출력 위에서 밀리 초를 무시하고 싶었 SQL의 GETDATE()에서 초와 밀리 초를 무시합니다.

2015-01-05 14:52:28.557 

처럼 실행 ,

SELECT GETDATE() 

출력 될 것이다. 이 작업을 수행하는 최적의 방법은 무엇입니까? 그것은이 작업을 수행 할 수있는 정확하고 최적화 방법은

SELECT CAST(FORMAT(GETDATE(),'yyyy-MM-dd HH:mm:0') AS datetime) 

입니다

:

I는 다음과 같이 타입 캐스팅하여이 작업을 수행하려고 노력 해요?

+0

실제로 무엇을하고 싶습니까? 특정 방식으로 간단하게 포맷 하시겠습니까? –

+0

가능한 [DateTime 값 데이터를 초없이 추출하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/8896663/a-way-to-extract-from-a-datetime-value-data-without- 초) – CJBS

+0

@ shree.pat18 날짜가 데이터베이스에 저장 될 때까지 datetime DB 열이 있습니다. 이제는 getdate 함수를 사용하여 현재 시스템 날짜와 비교하고 싶었습니다. –

답변

1

나는 Codo has shown하거나이 smalldatetime1에 캐스팅하는 DATEADD/DATEDIFF 트릭을 사용하는 것 중 하나 문자열을 통해 값.

초는 항상 부적합한 경우이 데이터 형식을 사용하도록 스키마를 변경하는 것이 적절할 수 있습니다.

+0

@ Damien_The_Unbeliever, 이것이 최선의 방법이라고 생각합니다. smalldatetime으로 타입 변환합니다. 감사 –

1

이 시도 :

SELECT dateadd(minute, datediff(minute, 0, GETDATE()), 0) 

쿼리는 DATEDIFF 작은 단위를 무시하고, 두 날짜 사이의 시간 (분)을 반환한다는 사실을 사용합니다. 0은 과거에 고정 된 날짜입니다.

다른 시간 단위에도 쉽게 적용 할 수 있습니다.

0

나는 그것이 작동한다면 괜찮은 것 같아. (테스트 해보지는 못했지만.) 다른 가능한 접근법들도 많이있다. 여기에 하나는 다음과 같습니다

select CAST(GETDATE() as smalldatetime) 

나는 라운드 트립을 포함 것을 피하기 것 :

select cast(convert(char(16), getdate(), 120) as datetime) 
관련 문제