아래 날짜를 표시된대로 출력으로 변환해야합니다. 코드 101을 사용하여 날짜 부분을 가져올 수 있지만 시간을 HH : MM : SS AM / PM으로 변환하는 코드를 찾을 수 없었습니까? 어떤 아이디어라도주세요. 감사합니다!
declare @adddate datetime
Set @adddate = 2011-07-06T22:30:07.5205649-04:00
Convert(varchar, @adddate, 101) + ' ' +
Convert(varchar, @adddate, 108)
출력은 다음과 같아야합니다.
07/06/2011 10:30:07 PM
당신의 현재 SET
는 작동하지 않습니다. 당신이있을 때 유효한 문자열 리터럴에서 들어오는 날짜 값을, 당신은이 작업을 수행 할 수 있습니다 :
DECLARE @adddate DATETIME;
SET @adddate = '2011-07-06T22:30:07.521';
SELECT CONVERT(CHAR(11), @adddate, 103)
+ LTRIM(RIGHT(CONVERT(CHAR(20), @adddate, 22), 11));
결과:
06/07/2011 10:30:07 PM
실제로 m / d / y를 원하는 경우 (질문이 모호함) 스타일 22를 사용하는 약간 더 짧은 경로가 있습니다.
DECLARE @adddate DATETIME;
SET @adddate = '2011-07-06T22:30:07.521';
SELECT STUFF(CONVERT(CHAR(20), @adddate, 22), 7, 2, YEAR(@adddate));
결과:
07/06/2011 10:30:07 PM
그러나 이것은 두 가지 이유로 나쁜 생각입니다.
지역 형식이 혼란스럽고 (독자가 2013 년 5 월 6 일이 6 월 5 일이 아니라 5 월 6 일이라는 것을 알고 있습니까? 출신지에 따라 다름) 심지어 위험 할 수도 있습니다 (해당 문자열을 다시 전달하면 6 월 5 일을 의미하는대로 저장할 수 있습니다). 5 월 6 일).
클라이언트 언어는 가능한 마지막 순간에 표시 할 수 있도록 자체 Format()
또는 ToString()
방법을 사용하는 것이 좋습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다