2011-09-07 2 views
0

은 주조 또는 VARCHAR에 날짜 시간을 변환하는 동안선택 날짜 2008

select * from table 

을 할 수있는 방법이 있습니까?

이것은 쉬운 것처럼 보이지만 완전히 나를 고맙게 생각합니다.

답변

3

당신은 단지에서 선택한 다음, 어쩌면 당신은 모든 변환이있는 뷰를 구축 할 수있는 다른 변환 스타일 http://msdn.microsoft.com/en-us/library/ms187928.aspx

+0

오, 고마워요! .. 내가 잘못 생각한 것 같습니다. 테이블의 모든 열을 선택하고 datetime으로 실행할 때마다 자동으로 변환 할 수있는 방법이 있습니까? – jsullivan88

+0

아니요, SQL Server에서 그렇게 할 방법이 없습니다. 물론 소비하는 응용 프로그램은 자유롭게 그 값을 전송할 수 있습니다 ... –

1

이 참조 선택

SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),... 

에 열 이름을 지정해야합니다 기본 테이블 대신보기. 아니 내가 SELECT * 옹호하는거야 ...

당신도 뷰를 동적으로 카탈로그 뷰에서 만들 수 있습니다.

EDIT 샘플을 추가하여보기를 생성하면 원하는대로 작동합니다.

DECLARE @sql NVARCHAR(MAX) = N'CREATE VIEW dbo.View_table 
AS 
    SELECT'; 

SELECT @sql = @sql + CHAR(13) + CHAR(10) 
    + '  ' + QUOTENAME(name) + CASE 
     WHEN system_type_id IN (40,42,43,58,61) 
     THEN ' = CONVERT(VARCHAR(10), ' 
    + QUOTENAME(name) + ', 120),' ELSE ',' END 
FROM sys.columns 
WHERE [object_id] = OBJECT_ID('dbo.table'); 

SELECT @sql = LEFT(@sql, LEN(@sql)-1) + ' 
    FROM dbo.table;'; 

PRINT @sql; 
--EXEC sp_executesql @sql; 

회원님이 약 TIME 데이터 형식을하고 싶은,하지만 같은 변환이 작동하지 않습니다 때문이 (그냥 1900-01-01에 값을 변경됩니다) 포함되어 있지 있는지 확인하십시오.