2010-08-12 7 views
1

날짜가 데이터베이스에 저장되는 형식을 mm/dd/yyyy에서 dd/mm/yyyy로 어떻게 변경합니까? MSHFlexGrid는 데이터베이스에서 직접 데이터를 읽으므로 원본을 dd/mm/yyyy 형식으로 저장해야합니다 .mm/dd/yyyy를 textbox에서 dd/mm/yyyy로 읽는 데 아무런 문제가 없습니다. 도움을 요청하십시오!데이터베이스에 저장된 날짜 형식을 변경하십시오.

+0

사용중인 데이터베이스를 알려 주실 수 있습니까? – StuartLC

답변

2

날짜는 일반적으로 불가 지론 형식으로 데이터베이스에 저장되며 현지화 된 형식으로 만 제공됩니다. 시스템/구성 요소에 대한 현지화 설정을보고 필요로하는 형식으로 날짜를 반환하도록 SELECT 쿼리를 수정해야합니다 (그리드에서 여전히 미국 형식으로 표시 할 것으로 생각됩니다).

+0

+1. 가능한 경우 시스템의 국가 별 설정을 변경하십시오. 그렇지 않으면 원래 날짜 유형이 아닌 문자열을 리턴하도록 SQL 조회를 변경하십시오. 나사로 (Lazarus)가 말했듯이, 그리드는 문자열이 날짜이고 그에 따라 서식을 결정할 수 있습니다. – MarkJ

+0

감사합니다. 나는 대답을 얻었습니다. 수동으로 레지스트리 키 [HKEY_CURRENT_USER \ Control Panel \ International] "sShortDate"= "M/D/yyyy"를 "sShortDate"= "d/M/yyyy"로 변경하십시오.하지만 코드로 어떻게 할 수 있습니까? –

+1

코드에서이 내용을 재정의해야하는지 확신 할 수는 없지만 로컬 시스템 설정입니다. 미국에서는 사용자가보고있는 형식이 정확할 것이고, 일본에서는 dd.mm.yyyy를 기대할 것입니다. 따라서 로컬 시스템이 날짜를 어떻게 결정해야하는지 (그리고 효과적으로 사용자에게 알려주는 것이 가장 좋습니다). – Lazarus

1

"는 MSHFlexGrid가에서 직접 데이터 읽고 데이터베이스 "

반드시 사용해야합니다. 중간에있는 것. DataEnvironment 디자이너, ADODB 레코드 세트 등?

'MSHFlexGrid'의 'H'는 계층 구조를 나타냅니다. 계층 적 데이터를 표시하고 있습니까? 그리드의 DataSource 속성에 계층 적 ADODB Recordset 바인딩?

계층 적 데이터가 필요하지 않은 경우 Microsoft DataGrid (MSDatGrd.ocx)를 고려하십시오. 비 계층 적 ADODB 레코드 세트를 바인딩하고 StdFormat.StdDataFormat 형식의 Columns 'DataFormat 속성을 악용 할 수 있습니다. 즉, 각각 _Format 및 _UnFormat에 대한 이벤트가 있습니다. 난이, DATETIME 값을 초 단위의 정밀도를 추가 '와 NULL을 대체하는 데 사용하는 등

UPDATE : 당신은은 BindingCollection 개체를 (사용하여 데이터 싱크를 만들 수 있습니다

은 컬렉션을 바인딩 Microsoft 데이터에 대한 참조를 필요 VB 6.0) Binding 개체가 DataFormat 속성을 지원하기 때문에. 작업 예제는 Data Sources, Data Sinks을 참조하십시오. 당신이 컴퓨터를 변경하고 여전히 같은 문제가있을 수 있기 때문에 시스템의 날짜 형식을 변경 생각하지 않는다

http://www.aivosto.com/visdev/data.html

+0

예. 설정했습니다. MSHFG1.DataSource = adodc1.Recordset을 사용합니다. MSHFlexGrid MSHFG1은 컨트롤의 이름입니다. –

+0

읽기 전용이므로 MSHFlexGrid를 사용합니다. 단지 feild를 표시하려고합니다. –

0

이 완벽한 솔루션입니다, 최고의 간단한 방법은 쿼리에서 원하는 형식을 지정하는 것입니다 , 나는 당신이 사용하고있는 데이터베이스를 모르지만 나는 당신에게 예제를 주었을 것이다.

표가 표에서 직접 읽는 경우 표에서 조회하는보기를 작성한 다음 표 형식을 지정해야합니다.

관련 문제