选择日期时间为在SQL Server 2008的varchar
问题描述:
答
你只需要在选择
SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),...
指定列名看到其他转换方式 http://msdn.microsoft.com/en-us/library/ms187928.aspx
答
也许你可以建立具有所有信徒的视图,然后从选择查看而不是基表。不是我主张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
)。
哦,谢谢!我想我是在看这个错误的方式。有没有办法选择表中的所有列,并让它每次运行时自动转换为日期时间? – jsullivan88
不,从SQL Server没有办法做到这一点,当然,消费应用程序可以*地转换这些值,但它喜欢...... –