无法转换''到时间戳。
我有一个" date_column" (日期类型)来自女巫我想选择前1行。我有一个程序通过10个表,每个表都有列" date_column"我希望从每列获得前1个日期,并根据该日期创建一个视图。我尝试使用转换语句,并得到:无法转换''到时间戳错误。如果我使@top_date
(日期类型)我在视图创建步骤中无法转换为数字,那么我认为它必须是varchar。
declare @table_name varchar(100)
declare @top_date varchar(20)
declare @sql varchar(1000)
select @table_name = 'random_name'
select @top_date = (select top 1 convert(varchar(12),date_column,112) from @table_name)
set @sql = ('create view top_view as select * from ' + @table_name + ' where date_column = '''+ @top_date +'''')
execute @sql
答案 0 :(得分:2)
正如错误消息所暗示的那样,您无法将空白字符串转换为日期时间。我猜测下面的查询提取空字符串:
select top 1 convert(varchar(12),date_column,112) from @table_name
所以要获得输出,只需添加这个小支票即可。
where convert(varchar(12),date_column,112) <> ''
<强> FINAL CODE
强>
declare @table_name varchar(100)
declare @top_date varchar(20)
declare @sql varchar(1000)
select @table_name = 'random_name'
select @top_date = (select top 1 convert(varchar(12),date_column,112) from @table_name where convert(varchar(12),date_column,112) <> ''
)
set @sql = ('create view top_view as select * from ' + @table_name + ' where date_column = '''+ @top_date +'''')
execute @sql