我想根据数据库中时间戳字段的年份和月份在我的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 & "'"
答案 0 :(得分:7)
我说使用参数和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