2013-09-27 52 views
0

例如,我試圖將「String1」「String2」和「String3」組合爲「String1/String2/String3」。然後我想將該字符串轉換爲日期,因爲我的三個字符串變量中的每一個都是分別保存的月份,日期和年份。如何將三個字符串合併到經典ASP頁面頂部的SQL中的單個字符串中?

我試圖做類似如下:

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

其實我有一個功能頁面已經連接到數據庫。我試圖添加額外的搜索功能,爲此,我需要能夠將實際日期與搜索參數進行比較,當我擁有三個變量時。我正在尋找的是如何將這三個varchars轉換爲一個字符串,然後將其轉換爲SQL中的日期。上面使用的代碼示例在添加到我的SQL語句時不起作用。我不知道這是否是一個簡單的語法錯誤,或者如果這甚至不是正確的做法是做出日期。

+0

,我認爲你應該告訴你有實際的查詢,而不是'東西like..' – SearchAndResQ

回答

0

如果引用SQL查詢中的varchar值,則可以使用+運算符將它們連接起來。

'varchar' + 'varchar' + 'varchar'

0
SELECT Table1.*, 
(Table1.month + "/" + Table1.day + "/" + Table1.year) AS ActualDate 
FROM Table1 

如果沒有覆蓋它,看看使用GROUP_CONCAT或其他級聯功能。

1

以下片段打開與數據庫的連接,執行sql語句並將返回的字段「ActualDate」寫入Response流對象。

我編輯添加一個非常簡單的方法來從請求參數創建一個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")) 
%> 
+0

我其實已經連接到數據庫的功能頁面。我試圖添加額外的搜索功能,爲此,我需要能夠將實際日期與搜索參數進行比較,當我擁有三個變量時。我在尋找的是如何將這三個變種轉換爲一個字符串,然後將其轉換爲日期。我上面使用的代碼示例和本示例不起作用。 – Diego

+0

嗨,@Diego,它解決了你的問題嗎? –

相關問題