AC # 프로그램을 개발 중이며 SQL 서버 데이터베이스에 날짜를 저장해야합니다. 내 능력에는 연, 월, 일을 저장해야하는 열 유형 날짜가 있습니다. 그래서 C # 프로그램의 날짜를 dd / mm / yyyy (이탈리아어 형식)에서 yyyy-mm-dd로 변환하고 데이터베이스에 삽입합니다. 테이블에서 데이터를 읽으 러 텍스트 상자에 표시하면 날짜와시 : 분 : 초가 표시됩니다. 왜? 내 데이터베이스에는 yyyy-mm-dd 만 저장하고 (sql 관리 스튜디오에서 확인합니다) C # 프로그램에서는 문자열 유형을 사용하여 객체의 속성에 날짜를 저장합니다.
public string data_fattura
{
get { return checkStringGet(_data_fattura); }
set { _data_fattura = checkDataSet(value); }
}
private string checkDataSet(string data)
{
string[] tmp = data.Split('/');
return tmp[2] + "-" + tmp[1] + "-" + tmp[0];
}
private string checkStringGet(string data)
{
string[] tmp = data.Split('-');
return tmp[2] + "/" + tmp[1] + "/" + tmp[0];
}
필요하지 않은 곳에서 문자열로 변환하지 마십시오.
을 사용하여 사용자 로부터 얻은 문자열 에서 변환 DateTime.ParseExact
한 다음 DateTime
. 매개 변수화 된 SQL의 매개 변수로 사용하여 데이터베이스에 삽입하십시오. 데이터베이스는 어쨌든 텍스트 형식으로 저장하지 않습니다.
데이터베이스에서 가져올 때, 당신은 것 또한 있습니다 DateTime
. (읽기에서 값을 캐스팅 할 수 있습니다 . 데이터베이스에서 가져올 때 텍스트 표현 근처로 갈 필요 가 없습니다 .) 사용자에게이를 표시하려면 적절하게 형식을 지정합니다 (사용 ToString
).
기본적 으로 가능한 한 많은 시간 동안 값을 DateTime
(또는 DateTimeOffset
잠재적 으로) 유지하십시오 ... 사용자로부터 텍스트를받을 때 가능한 한 빨리 (이상적으로는 날짜 / 시간을 인식하는 컨트롤을 사용하여 그런 다음에는 필요하지도 않습니다) 그리고 가능한 한 늦게 사용자에게 다시 제공 할 수 있습니다.
나타나는 시간에 관해서는 그것이 어디 에서 나타 났는지 완전히 명확하지 않습니다 . 날짜 만 원하는 경우 date
대신 열 이 있어야합니다 datetime
. 여전히 값을 DateTime
.NET 값으로 다시 가져 오지만 문자열로 변환 할 때는 날짜 전용 형식을 사용하십시오. .NET에는 "단순한 날짜"(불행히도 IMO) 유형이 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다