如何更改日期格式,因为它与数据库不一样

时间:2012-03-07 03:43:05

标签: mysql vb.net

编码显示在文本框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出现在文本框中。

2 个答案:

答案 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。这样你就不会自己进行原始字符串操作了。