如何将数据库中的三个varchars变量组合到嵌入在经典ASP页面顶部的SQL命令中的单个变量中

如何将数据库中的三个varchars变量组合到嵌入在经典ASP页面顶部的SQL命令中的单个变量中,sql,asp-classic,Sql,Asp Classic,例如,我尝试将“String1”、“String2”和“String3”组合为“String1/String2/String3”。然后我想将该字符串转换为日期,因为我的三个字符串变量分别是月、日和年 我正在尝试做如下事情: SELECT *, CONVERT(DATETIME, CONVERT(VARCHAR, month + "/" + day + "/" + year), 101) AS ActualDate 实际上,我有一个功能页面已经连接到数据库。我正在尝试添加其他搜索功能,为此,我需

例如,我尝试将“String1”、“String2”和“String3”组合为“String1/String2/String3”。然后我想将该字符串转换为日期,因为我的三个字符串变量分别是月、日和年

我正在尝试做如下事情:

SELECT *, CONVERT(DATETIME, CONVERT(VARCHAR, month + "/" + day + "/" + year), 101) AS ActualDate

实际上,我有一个功能页面已经连接到数据库。我正在尝试添加其他搜索功能,为此,我需要能够将实际日期与搜索参数进行比较,因为我只有三个varchar。我要寻找的是如何将这三个varchar转换为一个字符串,然后将其转换为SQL中的日期。我上面使用的代码示例在添加到SQL语句时不起作用。我不知道这是否是一个简单的语法错误,或者这甚至不是确定日期的正确方法。

在mysql中,请查看STR_to_date()命令。您还必须在mysql中使用concat(),不能使用+操作数

STR_TO_DATE(concat(month,'/',day,'/',year), '%m/%d/%Y')
编辑:
如果您使用的是sql server,请将原始问题中的“/”改为“/”,这样就行了。

为什么要这样保存日期?坏了。改为使用单个datetime列。即使单独存储月、日和年有任何优点(事实并非如此!),您也可以使用整数类型而不是varchar类型。MySql有自己的一套是的,我正在使用SQL Server,我没有意识到我在帖子中添加了MySql标签。我尝试使用单引号,但得到了相同的错误。上面的sql调用是在asp代码中还是在sql server上的存储过程/函数中?看,你是对的。其中一个变量不是varchar。必须转换它,然后单引号就像一个符咒。