use*_*942 2 sql vb.net sql-server
我想根据数据库中时间戳字段的年份和月份在我的select语句中放置一个where子句
我有一个月和一年的下拉列表,它给了我以下字符串01/2012
我的数据库中的日期格式是"2012-01-01 00:00:00"但是当我选择一个单独的日期并将其放入消息框时,它会转换为"01/01/2012"
我已经修改了下面的选择语句以反映转换日期.但是我仍然没有给出正确的细节.有任何想法吗?在处理时间戳字段时是否需要使用特定格式?我甚至可以在select语句中使用"Right"函数吗?
Dim newRecordDate As String = val1 & "/" & ComboBox2.SelectedValue
Dim sql2 As String = "Select CatA, CatB, CatC, Cost, Currency, MarketingCode, Comment, RecordDate from vw_tblP_Usage_Details where puid = '" & puid & "' right(RecordDate, 7) = '" & newRecordDate & "'"
Run Code Online (Sandbox Code Playgroud)
我说使用参数和SqlParameter类将参数值从.NET客户端传递给sql server而不是使用连接和字符串格式.它让生活更轻松.
像这样的东西:
Dim myDate As Date = DateTime.Now
Dim sql As String = "Select * from SomeTable where MyDate = @some_param"
Using Command As New SqlClient.SqlCommand(sql)
Command.Parameters.AddWithValue("@some_param", myDate)
Using reader As SqlClient.SqlDataReader = Command.ExecuteReader()
'other code here
End Using
End Using
Run Code Online (Sandbox Code Playgroud)