2010-05-08 5 views
1

DateTime Type의 데이터 테이블에 열이 있습니다. 나는 단지 DatePart를 원한다. 따라서 ToShortDateTimeString을 사용할 때 짧은 날짜로 변환되지만 문자열 유형으로 변환된다. 따라서 문자열을 데이터 테이블의 열에 다시 할당하면 12:00:00이 다시 추가됩니다. 내 데이터 테이블에서 열 유형을 변경할 수 없습니다. 문자열로 변환하지 않고 DateTime을 ShortDateTime으로 직접 변환하는 방법이 있습니까?C#에서 DateTime을 shortdatetime으로 변환하는 방법은 무엇입니까?

+0

당신이 바로 달력 날짜가 아닌 시계의 시간을 저장하는 데이터 형식을 찾고 맞습니까? 그것이 제가 첫 번째 개정판을 읽는 방법입니다. –

+0

... 사촌의 담당자는 새로운 사용자가이 사이트에 유입되면서 희소하고 우리는 늑대의 게걸스러운 팩이이 문제를 공격하기를 기다리고 있습니다 ... 지금 점심 먹으러 갈 것입니다. 2010 년 5 월 8 일 오후 3시 01 분 25 초까지 기다릴 수 있다면 그 일은 명확 할 것입니다. 내 스케줄과 동기화 될 것입니다. 그렇지 않으면 오늘의 시간 부분을 제외하고는 오늘 언제 돌아와서 언제 제공 할 지 모를 것입니다. 대답 : –

+0

예 ur 의례. 나는 시간 부분이 아니라 날짜 만 원한다. 나는 datatable을 gridview에 바인딩하고있다. 따라서 rowdatabound 이벤트에서 데이터를 조작하는 것이 유일한 옵션임을 의미합니다. Guffa의 설명이 맞다고 생각합니다. 다른 해결책이 있다면 알려주시겠습니까? –

답변

2

는이처럼 .Date property를 사용할 수 있습니다

DateTime.Now.Date //just the date portion, like DateTime.Today would give 

당신은 디스플레이, 예를 포맷하고 싶었다면 의 GridView에서,이 같은 the DataFormatString property를 사용하여 열 형식을 추가 할 수 있습니다

<asp:BoundField DataField="ColumnName" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="false" /> 
+0

미안하지만, 그 일을하지 않아 –

+0

시간 부분도 포함하고 있습니다 - 분명히 질문은 시간 구성 요소가 사라 졌으면 좋겠습니까? –

+0

@Abhishek - 나는 당신의 질문에 혼란 스럽습니다. 시간 부분은'DateTime' 유형의 근본적인 부분입니다 ... 당신은 시간없이 그 유형을 저장할 수 없으며, 표시 할 때 할 수있는 모든 일은 무시합니다. –

3

아니, 그건 불가능합니다. 문자열로 형식을 지정해도 도움이되지 않습니다.

데이터베이스의 datetime 유형에는 항상 날짜와 시간 구성 요소가 모두 있습니다. 시간 구성 요소를 지정하지 않으면 00:00:00 (또는 12:00:00 AM, 12 시간 형식)이됩니다. 그래서, 당신이 시간을 제거하려고 할 때마다, 그것은 여전히 ​​하나가됩니다.

데이터베이스의 datetime 값에는 형식이 없습니다. 그것은 단지 한 시점을 나타내는 값입니다.

데이터베이스에서 if를 읽을 때마다 데이터를 관리해야합니다. 날짜 값을 문자열로 형식화하기 위해 기본 설정을 사용하는 경우 날짜와 시간 구성 요소가 항상있는 것처럼 얻을 수 있습니다. DateTime 값을 표시 할 문자열로 변환 할 때 원하는 형식을 지정해야합니다. 예를 들면 :

string formatted = theDateTimeValue.ToString("yyyy-MM-dd"); 
+0

나는 datatable을 gridview에 바인딩하고있다. 그래서 유일한 옵션은 rowdatabound 이벤트에서 데이터를 조작하는 것입니다. –

+0

@Abhishek : 필드를 격자 열에 바인딩 할 때 형식을 지정할 수 있어야합니다. Nick이 답변에 추가 한 것과 같습니다. RowDataBound 이벤트를 사용하면 작업하기 때문에 서식을 지정하기 전에 값으로 원하는 것을 수행 할 수 있습니다. – Guffa

3

사용하여 날짜 열 형식 안에, DataGrids를 나있는 GridViews 다루기 경우 : 당신이 웹에있는 경우 {0 D} 또는 간단한 D. 및 테이블, TR과 TD와 바인딩을 사용하여 itemplate를 사용하여 <퍼센트 번호 평가와 같은 템플릿은() %> 당신은 다음을 시도해보십시오

<span><%#string.Format("{0:d}",Eval("DataTableFieldName"))%></span> 
관련 문제