2011-09-07 68 views

回答

3

你只需要在選擇

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

指定列名看到其他轉換方式 http://msdn.microsoft.com/en-us/library/ms187928.aspx

+0

哦,謝謝!我想我是在看這個錯誤的方式。有沒有辦法選擇表中的所有列,並讓它每次運行時自動轉換爲日期時間? – jsullivan88

+0

不,從SQL Server沒有辦法做到這一點,當然,消費應用程序可以自由地轉換這些值,但它喜歡...... –

1

也許你可以建立具有所有信徒的視圖,然後從選擇查看而不是基表。不是我主張SELECT * ...

您也可以從目錄視圖中動態構建視圖。

編輯添加示例創建一個視圖,它將按需要工作。

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)。

相關問題