在sql server 2008中选择datetime作为varchar
有什么方法可以做一个测试吗在sql server 2008中选择datetime作为varchar,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,有什么方法可以做一个测试吗 select * from table 将datetimes强制转换为varchar时 这似乎很简单,但我完全无法理解,谢谢。您只需在选择框中指定列名即可 SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),... 有关其他转换样式,请参见此 您只需在选择框中指定列名即可 SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),... 有关其他转换样式,请参见此
select * from table
将datetimes强制转换为varchar时
这似乎很简单,但我完全无法理解,谢谢。您只需在选择框中指定列名即可
SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),...
有关其他转换样式,请参见此
您只需在选择框中指定列名即可
SELECT CONVERT(VARCHAR(10), [MyDateTimecolumn], 20),...
有关其他转换样式,请参见此
也许您可以构建一个包含所有转换的视图,然后从视图而不是基表中进行选择。我不是在提倡选择* 您也可以从目录视图动态构建视图 编辑添加示例以创建视图,该视图将根据需要工作
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;
不确定您想对
时间
数据类型执行什么操作,但没有包括在内,因为相同的转换不起作用(它只会将值更改为1900-01-01
)。也许您可以构建一个包含所有转换的视图,然后从视图而不是基表中进行选择。我不是在提倡选择*
您也可以从目录视图动态构建视图
编辑添加示例以创建视图,该视图将根据需要工作
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;
不确定您想对
时间
数据类型执行什么操作,但没有包括在内,因为相同的转换将不起作用(它只会将值更改为1900-01-01
)。哦,谢谢!。。我想我看错了。是否无法选择表中的所有列,并让它在每次运行时自动转换为日期时间?否,无法从SQL Server执行此操作,当然,消费应用程序可以随意转换这些值…哦,谢谢!。。我想我看错了。是否无法选择表中的所有列,并使其在每次运行时自动转换为日期时间?否,无法从SQL Server执行此操作,当然,消费应用程序可以随意转换这些值。。。