有没有办法做
select * from table
将日期时间转换或转换为varchar?
这似乎很容易,但它完全没有我,谢谢。
答案 0 :(得分:3)
您只需在选择
中指定列名称即可SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),...
查看其他转换样式 http://msdn.microsoft.com/en-us/library/ms187928.aspx
答案 1 :(得分: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
)。