Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 转换数据类型_Sql Server_Tsql - Fatal编程技术网

Sql server 转换数据类型

Sql server 转换数据类型,sql-server,tsql,Sql Server,Tsql,我试图将串联字符串分配给我的变量,并得到错误“将数据类型varchar转换为datetime时出错” 你能帮我解决这个问题吗 declare @msg Varchar(max) set @msg = 'select' + 'File Date: ' + CAST(GetDate() AS VARCHAR(Max)) + ' data imported successfully' EXEC DataImport @PackageName = '', @Status= 'Successful'

我试图将串联字符串分配给我的变量,并得到错误“将数据类型varchar转换为datetime时出错”

你能帮我解决这个问题吗

declare @msg Varchar(max)
set @msg = 'select' + 'File Date: ' + CAST(GetDate() AS VARCHAR(Max))  + ' data imported successfully'


EXEC DataImport
@PackageName = '',
@Status= 'Successful', 
@Message = @msg,
@FileName = 'test',
@PackageExecutionDate = 'test',
@Step = 'Import Flat Files'
您可以使用
CONCAT()
,它会自动转换值:

set @msg = concat('select', 'File Date: ', CAST(GetDate() AS VARCHAR(Max)), ' data imported successfully')

您的原始数据库标记都不支持
getdate()
varchar(max)
,因此您可能还存在其他问题。

我使用C代码解决了这个问题,而不是使用SQL直接在SSIS包上进行转换。谢谢。

我删除了不兼容的数据库标记。您的代码在SQLite或MySQL中都没有意义。日期字符串不可能超过4GB,因此没有理由使用
varchar(max)
。如果你想控制日期字符串,你应该使用
CONVERT
和样式,或者
FORMAT
和格式字符串。您好@GordonLinoff,我试过CONCAT(),但它也不起作用。