Like 패턴 검색시 mm [d]d yyyy hh:mm[AM or PM] 패턴으로 검색해주시면 됩니다. datetime 인 데이터를 convert
(varchar,registerDate) 해주시면 패턴을 알수 있습니다. 주의하실점은 일자일 경우 10일 이하인 9일 같은 경우 앞에 
스페이스를 두개 넣어 검색하셔야 한다는 점입니다. _를 스페이스라 하면 5월 2일 검색시.... like '05__2%' 로 하시면 
됩니다. 다만 초검색은 Like 검색으로 안됩니다. ms(미리세컨) 까지 검색시는 Between 검색 또는 convert(char
(23),getdate(),121) 로 해 주셔야 합니다.

다음을 실행해 보세요

-------------------------------------------------------------
if object_id('Product') is not null
drop table Product

create table Product(sid int identity,registerDate datetime)

insert Product values('2009-07-01')
insert Product values('2008-07-01')
insert Product values('2007-05-02 12:12:12.997')


2009년 7월 검색시

select * 
  from Product  
where registerDate LIKE '07 [0-9 ][0-9] 2009%' 
order by sid desc


          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          1           2009-07-01 00:00:00.000

          (1개 행 적용됨)

7월 1일 검색시

select * 
  from Product 
where registerDate LIKE '07  1%' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          2           2008-07-01 00:00:00.000
          1           2009-07-01 00:00:00.000

          (2개 행 적용됨)

2008년 검색시

select * 
  from Product 
where registerDate LIKE '[0-1][0-9] [0-9 ][0-9] 2008%' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          2           2008-07-01 00:00:00.000

          (1개 행 적용됨)

7월 검색시

select * 
  from Product 
where registerDate LIKE '07%' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          2           2008-07-01 00:00:00.000
          1           2009-07-01 00:00:00.000

          (2개 행 적용됨)

1일 검색시

select * 
  from Product 
where registerDate LIKE '[0-1][0-9]  1%' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          2           2008-07-01 00:00:00.000
          1           2009-07-01 00:00:00.000

          (2개 행 적용됨)

오후 12시 검색

select * 
  from Product 
where registerDate LIKE '[0-1][0-9] [0-9 ][0-9] [1-9][0-9][0-9][0-9] 12:[0-9][0-9]PM'  
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          3           2007-05-02 12:12:12.997

          (1개 행 적용됨)

0분 검색

select * 
  from Product 
where registerDate LIKE '[0-1][0-9] [0-9 ][0-9] [1-9][0-9][0-9][0-9] [0-1][0-9]:00%' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          2           2008-07-01 00:00:00.000
          1           2009-07-01 00:00:00.000

          (2개 행 적용됨)

오후 검색

select * 
  from Product 
where registerDate LIKE '[0-1][0-9] [0-9 ][0-9] [1-9][0-9][0-9][0-9] [0-1][0-9]:[0-5][0-9]PM' 
order by sid desc

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          3           2007-05-02 12:12:12.997

          (1개 행 적용됨)


Between 을 이용 특정 일자 범위를 검색

2007년 5월 2일 12시부터 자정까지 검색시

select * 
  from Product 
where registerDate between '2007-05-02 12:00' and '2007-05-02 23:59:59.997' 
order by sid desc 

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          3           2007-05-02 12:12:12.997

          (1개 행 적용됨)


2009년 7월 1일 검색시

select * 
  from Product 
where registerDate between '2009-07-01' and '2009-07-01 23:59:59.997' 
order by sid desc 

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          1           2009-07-01 00:00:00.000

          (1개 행 적용됨)

2009년 7월 검색시

select * 
  from Product 
where registerDate between '2009-07-01' and '2009-07-31 23:59:59.997' 
order by sid desc 

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          1           2009-07-01 00:00:00.000

          (1개 행 적용됨)

2009년 검색시

select * 
  from Product 
where registerDate between '2009-01-01' and '2009-12-31 23:59:59.997' 
order by sid desc 

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          1           2009-07-01 00:00:00.000

          (1개 행 적용됨)



성능은 떨어지지만 다른 검색방법으로는 

2009년 7월 검색시

select * 
   from Product 
where convert(char(7),registerDate,120) = '2009-07' 
order by sid desc 

          sid         registerDate                                           
          ----------- ------------------------------------------------------ 
          1           2009-07-01 00:00:00.000

          (1개 행 적용됨)

같이 datetime형을 char 형으로 변경하시고 검색하셔도 됩니다. 
convert 시 convert(char(10),registerDate,120) 는 YYYY-MM-DD convert(char(8),registerDate,112) 는 
YYYYMMDD convert(char(10),registerDate,111) 는 YYYY/MM/DD 형태로 변경됩니다. 자세한 내용은 도움말의 
CAST 및 CONVERT 를 참고하세요.

 

단, 조건절이 되는 컬럼에 손을 대는건 퍼포먼스 측면에서 부하가 뒤따릅니다

 

 

퍼온곳 : http://sqler.pe.kr/web_board/view_list.asp?id=829&read=404&pagec=2&gotopage=2&block=0&part=myboard7&tip=

 

 

//12월에 해당하는 데이터 셀렉트

select * from poll_p_ref where w_date like '12%'

//2006년 12월에 해당하는 데이터 셀렉트

select * from poll_p_ref where convert(char(7),w_date,120) = '2006-12'

 

//2006년 12월에 해당하는 데이터를 다른 테이블에 인서트시키기
insert into poll_p_ref_bak (no, p_title, w_date, ip_info, temp1, temp2, temp3 )
(select  no, p_title, w_date, ip_info, temp1, temp2, temp3

from poll_p_ref 
where convert(char(7),w_date,120) = '2006-12')

+ Recent posts