2012-03-14 5 views
0

두 개의 datepickers에 의해 구동되는 wpf에서 만든 몇 가지 사용자 컨트롤이 있습니다. 하나의 선택기는 날짜 범위의 시작을 제어하고 다른 선택기는 날짜 범위의 끝을 제어합니다.sql datetime에 날짜 전달하기

날짜와 함께 시간을 제공하는 datepicker.selecteddate 속성에 문제가 있었으며 시간 값이 전달되어 많은 결과가 필터링 되었기 때문에 SQL 결과가 모두 표시되지 않았습니다. 결국 그 시간을 자정까지 포맷하면 내 결과가 모두 나타 났지만, datepicker에서 새로운 선택을 선택할 때마다 형식화 된 시간이 재설정됩니다.

일부 테스트 후 나는 datepicker 텍스트 속성의 값을 매개 변수로 전달할 수 있음을 발견했습니다. 이 속성의 값은 문자열 유형이며 현재 선택된 날짜의 날짜 값으로 설정됩니다 (예 : 3/14/2012 5:00:32 AM은 선택한 날짜이고 '3/14/2012'는 텍스트 값 임).

놀랍게도, 이것은 내가 원하는 모든 결과를 반환하는 것 같습니다.

나는 이것이 실제로 작동하는 이유에 대해 궁금해했다. (b/c 'mdy'리터럴 형식이 지원되고 기본값인가?) 그리고 내가하는 일에 어떤 부정적인 단점이 있다면? 나는 무언가가 작동한다고해서 당신이 프로덕션 환경에서 사용해야한다는 것을 의미하지는 않습니다. 다른 사람들과 테이블을 공유하거나 datetime 필드와 매개 변수를 현재 날짜로 변환하고 완료합니다.

제 질문에 도움이 되었기를 바랍니다. 때로는 그렇지 않습니다. 궁금한 점이 있으면 의견을 남기고 연락 드리겠습니다.

+1

RDBMS는 무엇입니까? SQL Server의 경우 매개 변수의 실제 데이터 형식은 무엇입니까? –

+0

RDBMS를 포함하여 사용중인 소프트웨어를 알려주지 않았습니다. – Marc

+0

Martin Smith : 날짜의 문자열 표현을 sproc의 datetime 매개 변수로 전달. sproc은 datetime 형식의 필드를 다른 테이블에서 호출합니다. – TWood

답변

0

부정적인 단점까지 볼 수는 없지만 많은 앱/DB에서이 문제를 처리하고 있습니다. 그러나, 내가 일반적으로 처리하는 방식은 추가되는 레코드가 시간 (즉, BusinessDate, LoadDate)을 필요로하지 않는다면 날짜와 시간이없는 레코드 만 추가하기 때문에 값은 항상 3/14/2012 12:00:00 AM 나는 당신이 시간을 다룰 필요가 없기 때문에 훨씬 더 쉽게 질의를한다고 생각한다.

datetimepicker으로 날짜를 검색 할 때 내 UI (winforms)에서 나는 비슷한 형식으로 날짜를 제공하는 datetimepicker.Value.Date을 사용한다. (3/14/2012 12:00:00 AM).

datetime이 필요한 필드가있는 경우 테이블을 사용하여 테이블의 날짜 서식을 지정하거나 검색하려는 날짜가 포함될 date > yourdate AND date <= yourdate을 사용하여 날짜를 검색 할 수 있습니다.

+0

당신의 말은 의미가 있습니다. 실제로 디스플레이에 사용 된 varchar 형식의 시간 값이있는 뷰와 수정되지 않은 "entrytime"뷰를 사용하여 쿼리를 더 쉽게 만들었습니다. 나는 돌아가서 거기에 날짜 필드를 던지기도한다. 당신이 참조한 datepicker 속성을 찾은 것처럼 보입니다. wpf에서 winforms 구문 인 DatePicker.SelectedDate.Value.Date와 약간 다릅니다. – TWood

+0

속성을 찾았 기 때문에 기꺼이 서식을 지정하지 않아도 자동으로 날짜 값을 제공합니다. – Taryn

+0

나는 또한이다. 코드가 kludgy를 얻고있는 것처럼 느껴졌습니다.이 코드는이를 수정하고 나에게도 뭔가를 가르칩니다. 상대방의 포인트와 보석금을받는 것이 아니라 내 질문에 실제로 답변 해 주셔서 감사드립니다. 좋은이. – TWood

관련 문제