2013-10-22 2 views

답변

4

당신은 다음과 같이 시도 할 수 있습니다 : -

sel * from table A 
where date = date '2013-10-22'; 

ANSI 표준 형태 때문에 (키워드 DATE 와야합니다)

확인 this

+0

이것은 또한 잘 작동합니다. 고마워요 – RRR

+0

@RRR : - 천만에요. 그것이 당신을 도운다면 대답으로 받아들이십시오! –

+0

타임 스탬프의 날짜 만 그룹화 할 수있는 방법을 알고 있습니까? – RRR

0

뭔가 :

where YourTimestampField >= {d '2013-10-22'} 
and YourTimestampField < {d '2013-10-23'} 
+0

고맙습니다. 잘 작동합니다. – RRR

+0

타임 스탬프 열과 관련하여 그룹화하려면 wrt 날짜 만 사용하십시오. 예를 들어 : createddate에 의해 그룹을 수행 할 때, 각 값의 시간이 다르기 때문에 모든 레코드를 개별적으로 제공합니다. timestamp 필드의 시간과 관계없이 모든 비슷한 날짜를 그룹으로 묶으려고합니다. – RRR

0

그리고 더 정식으로 :

select * 
from table A 
where cast(timestamp_column as date) = date '2013-10-22'; 

date이라는 열을 가질 수 있다고 생각하지 않아서 예제를 보여 준 것으로 추측됩니다. 예약어입니다. 위의 키워드 "date"은 ANSI 날짜 상수를 지정하는 방식이며 "날짜"기능과 관련이 없습니다.

+0

예기치 않은 일은 : CAST 할 필요조차 없습니다. 타임 스탬프를 날짜와 비교하면 날짜로 자동 캐스팅됩니다. 이것이 표준 SQL에 기반하는지는 모르겠지만, 내가 생각한 버그를 조사했을 때 매뉴얼에 정의 된 것을 발견했습니다. – dnoeth

+0

where 절의 함수를 사용하면 생산 속도가 느려지는 경향이 있습니다. 이 기능은 인덱싱 된 필드에 적용 할 경우 확대됩니다. –

+0

@dnoeth 예, 기억하겠습니다.하지만 기본 변환을 사용하는 코드를 작성하는 것은 싫습니다. 필자는 항상 날짜 문자열 앞에 'date' 한정자를 사용하는 것과 같은 이유가 있습니다. 그게 정말로 필요하지는 않지만, 그것은 나에게 무엇이 일어나고 있는지 훨씬 명확하게 해줍니다. – BellevueBob

관련 문제