0

例如,我试图将“String1”“String2”和“String3”结合起来读作“String1 / String2 / String3”。然后我想将该字符串转换为日期,因为我的三个字符串变量中的每一个都是分别保存的月、日和年。

我正在尝试执行以下操作:

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

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

4

3 回答 3

1

以下代码片段打开与数据库的连接,执行 sql 语句并将返回的字段“ActualDate”写入响应流对象。

我编辑添加了一个非常简单的方法来从请求参数创建一个 sql 语句,然后提交到数据库。请记住,这不是一种“漂亮”的方式,您仍然需要保证参数不会破坏 SQL。

<%
' get parameters from request
Dim parDay : parDay = cLng(Request("DAY"))
Dim parMon : parMon = cLng(Request("MONTH"))
Dim parYea : parYea = cLng(Request("YEAR"))

' IMPORTANT: add your own validation here

' open connection to database
Dim cnn : Set cnn = CreateObject("ADODB.Connection")
cnn.Open("paste-your-db-connection-string-here")

' create recordset and assign to the connection
Dim rs : Set rs  = CreateObject("ADODB.Recordset")
Set rs.ActiveConnection = cnn

' execute the statement and get its results using the recordset
Dim sql : sql = "SELECT *"
+ "FROM myTable"
+ "WHERE ActualDate > '" + parYea + "-" + parMon + "-"  + parDay + "';"
rs.Open(sql)

' write to the page
Response.Write(rs.("ActualDate"))
%>
于 2013-09-27T14:48:02.760 回答
0
SELECT  Table1.*, 
(Table1.month + "/" + Table1.day + "/" + Table1.year) AS ActualDate
FROM Table1

如果这不包括它,请查看使用GROUP_CONCAT或其他连接功能。

于 2013-09-27T14:47:22.463 回答
0

如果您在 SQL 查询中引用 varchar 值,则可以使用 + 运算符连接它们。

'varchar' + 'varchar' + 'varchar'

于 2013-09-27T13:54:17.170 回答