根据我以前的问题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