2012-04-19 6 views
-1

날짜 값을 저장하는 열이 있습니다. 그러나 날짜가 잘못된 형식으로 채워지는 방법도 있습니다. 열의 날짜 형식은 DD/MM/YYYY이지만 날짜는 MM/DD/YYYY으로 채워집니다. 값을 MM/DD/YYYY에서 DD/MM/YYYY으로 어떻게 변경할 수 있습니까? 예 : 이 순간에는 03/05/2012이 표시되고 3rd May 2012으로 읽혀 실제적으로는 실제로 05/03/2012 (5th March 2012)으로 채워 져야합니다.날짜를 다른 형식으로 다시 업데이트하는 방법은 무엇입니까?

위 문제는 해결되었지만 비슷한 질문이 있습니다. "2012-12-01 12 : 33 : 00.0"을 "2012-01-12 12 : 33 : 00.0"으로 바꾸려면 어떻게해야합니까? "convert (varchar (50), convert (datetime, log_date, 103), 121)"을 선택하고 101과 103을 모두 사용했지만 여전히 뒤집을 수 없었습니다.

+0

열의 유형이'date','datetime' 또는'datetime2' 인 경우 * 형식을 갖지 않습니다. 또한 "저장된"날짜의 * all *이 맞지 않습니까? 그렇지 않은 경우, 뒤집기가 필요한 날짜와 그렇지 않은 날짜를 어떻게 구별해야합니까? –

+0

안녕 Damien. 어떤 날짜를 뒤집을 필요가 있는지 쉽게 결정할 수 있습니다. 날짜 열은 현재 날짜보다 커서는 안됩니다. – cooldude

+0

2012 년 1 월 3 일 1 월 3 일 또는 3 월 1 일입니까? 둘 다 과거에 있습니다. –

답변

0

당신은 문자열과 날짜 시간 값 사이에 변환 할 convert function을 사용할 수 있습니다 : 여기 당신은 다른 SYS 언어에 dateformat을 찾을 수 있습니다.

Convert a DD/MM/YYYY string to a datetime: convert(datetime, value, 103) 
Convert a datetime to a DD/MM/YYYY string: convert(varchar(10), value, 103) 
Convert a MM/DD/YYYY string to a datetime: convert(datetime, value, 101) 
Convert a datetime to a MM/DD/YYYY string: convert(varchar(10), value, 101) 

다음 중 varchar 또는 datetime으로 테이블에 날짜를 저장했는지 여부에 따라 필요한 항목에 따라 다릅니다.

+0

MM/DD/YYYY 값을 DD/MM/YYYY 값으로 변환하고 싶습니다. – cooldude

+0

@cooldude : 그런 다음 문자열을 datetime 값으로 변환 한 다음 datetime 값을 문자열로 변환하는 세 번째 문자열을 사용합니다. 'convert (varchar (10), convert (datetime, value, 101), 103)' . – Guffa

+0

감사합니다. 이 작동합니다. 101과 103 옆에 다른 매개 변수가 있는지 알 수 있습니까? YYYY-MM-DD hh의 형식은 무엇입니까? mi : ss.mmm 및 YYYY-DD-MM hh : mi : ss.mmm? – cooldude

0

날짜가 귀하의 열에 어떻게 전달되는지 모르겠습니다. 그러나 변환 기능은 여기에 도움이 될 수 있습니다 :이 도움이 http://msdn.microsoft.com/de-de/library/ms187928.aspx

희망 :

SELECT convert(datetime, '03/05/2012',103) 

당신은 다른 날짜와 시간 스타일이 MSDN 문서를 볼 수 있습니다.

btw : 문제가 표 자체에 저장되는 방법 인 경우 문화 설정을 살펴 봐야합니다.

select * from sys.syslanguages 
+0

잘못된 날짜가 Excel 파일에서 잘못 채워졌습니다. 그래서 지금 제가 그들을 청소하고 있습니다. 도움이되는지 확인하기 위해 변환 함수를 살펴 보겠습니다. – cooldude

+0

안녕하세요, 나는 convert 함수를 사용했지만 도움이되지 않습니다. 실제로 내가하고 싶은 것은 잘못된 데이터에 대해 UPDATE를 수행하는 것입니다. 2012 년 3 월 5 일의 기존 값을 05/03/2012로 변환하고 싶습니다. – cooldude

0

날짜는 특정 시점으로 저장되지만 특수한 형식으로 저장되지는 ​​않습니다. 그것이 귀하에게 반환되는 방법은 데이터베이스의 언어/문화권 설정에 따라 다를 수 있습니다.

나는 당신이 원하는 형식을 얻기 위해 SELECT CONVERT (...)을 사용할 수 있다고 생각합니다. 다음은 몇 가지 예입니다. http://www.sql-server-helper.com/tips/date-formats.aspx

+0

안녕하세요, 나는 convert 함수를 사용했지만 도움이되지 않습니다. 실제로 내가하고 싶은 것은 잘못된 데이터에 대해 UPDATE를 수행하는 것입니다. 2012/03/05의 기존 값을 05/03/2012로 변환하고 싶습니다. – cooldude

+0

@cooldude Damien_The_Unbeliever 님의 질문에 대한 의견에 동의합니다. 열이 날짜 유형 인 경우이 열의 데이터에는 실제로 형식 자체가 없으므로 값을 변환 할 필요가 없습니다. 문제는 반환 할 때 데이터베이스가 데이터를 표시하는 방법에 관한 것입니다. – Hailei

+0

@cooldude 이것이 당신에게 유용한 지 모르겠습니다. http://blogs.msdn.com/b/sqlserverfaq/archive/2009/11/13/how-to-change-date-format-after-installing -sql-server.aspx – Hailei

관련 문제