编码显示在文本框18/02/2012(例如)。但在数据库中它是02/18/2012。
TxtReqDate.Text = Calendar.SelectionStart.ToString("dd/MM/yyyy")
cboTermCode.Focus()
Calendar.Visible = False
但是当我想使用下面的代码检索日期的相关数据时:
sqlCbo2 = "SELECT DISTINCT gear_code FROM gear WHERE est_start_date='" & TxtReqDate.Text & "'"
它说无效日期。 我无法更改数据库中的日期格式。
如果我将代码TxtReqDate.Text = Calendar.SelectionStart.ToString(“dd / MM / yyyy”)更改为TxtReqDate.Text = Calendar.SelectionStart.ToShortDateString,因为它将在文本框中显示02/18/2012数据将出现,但我希望18/02/2012出现在文本框中。
答案 0 :(得分:0)
您可以使用STR_TO_DATE函数来解析该数据并将其转换为Date值。
像这样使用它(纠正任何语法错误):
我应该把它放在哪里。例如??
sqlCbo2 = "SELECT DISTINCT gear_code FROM gear WHERE est_start_date=STR_TO_DATE('" & TxtReqDate.Text & "','%d/%m/%Y')"
答案 1 :(得分:0)
此示例实际上使用的是OleDbCommand
,但SqlCommand
的语法类似:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx
Dim comm As New OleDb.OleDbCommand(reportQueryString, conn)
comm.Parameters.Add("[ReportDate]", OleDbType.Date)
comm.Parameters("[ReportDate]").Value = dateVariable
您可以看到添加参数时,指定命令应将数据类型转换为的dataType。这样你就不会自己进行原始字符串操作了。