根據我以前的問題VB.net SQL statement to query 1 yr old Timestamp,我的SQl查詢回顧一年的記錄將停止一半,並出現以下錯誤:Select Error: ORA-01830: date format picture ends before converting entire input string
。VB.net從DateTime.Now.ToString減去1年
因此,我決定對從當前日期起不超過一年的行執行不同的路由。
要做到這一點,我會在VB.net下面的SELECT語句:
Dim strSearch As String = "Select timestampVal from table_name WHERE timestampVal > " & minusYear & " order by timestampVal DESC"
對於我minusYear
變量在我的SELECT語句中,我將首先拉動下面的當前日期字符串:
Dim sign As String = DateTime.Now.ToString("yyyyMMdd-hhmmss")
但是,要得到minusYear
我需要以某種方式減去從sign
一年。我想試試Dim minusYear As String = DateTime.Now.AddYears(-1)
;但它的格式如此MM\DD\YYYY HH:MI:SS PM
這將不起作用,因爲我需要查詢字符串看起來像yyyyMMdd-hhmmss
。
有沒有辦法簡單地從我的符號字符串減去1年?我嘗試,但當然有數據類型的問題,並將字符串轉換爲CInt
並不真正的工作。
如果我能得到1年的減號獲得minusYear
,那麼我的select語句的作品[我已經在SQL測試它,以便通過這種方式將工作,我只需要獲得sign's
值減去同期】
我在看到您對字符串格式的評論後更新了內容。這現在就像你想要的那樣格式化它。但是,這又是一種代碼味道。你不應該建立SQL查詢字符串。如果您創建一個參數化查詢並將參數作爲日期時間而不是字符串傳入,那麼您不必擔心日期的格式。 –
這是我想要的。謝謝。問題是數據庫是在我處理應用程序之前預先創建的。該應用程序在日期列中有超過1000個信息,因此;我必須處理已實施的信息。他們都看起來像他們遵循相同的格式;然而,當我嘗試在這裏執行此操作時,數據庫標誌會阻止我使用上面提到的錯誤。據說,我知道在VB.net中應用查詢並沒有標記錯誤。所以即使我更喜歡在數據庫中執行查詢,我也無法繞過錯誤。再一次感謝你! – narue1992