Sql server 转换;年月日;至;年月日;

Sql server 转换;年月日;至;年月日;,sql-server,vb.net,date,Sql Server,Vb.net,Date,我在将日期插入数据库并显示时遇到问题。 我将Visual Basic 2013与Microsoft SQL数据库文件一起使用。 我有一个名为“约会”的表,有一个名为“日期”的列,其中包含日期类型。 我有一个带有日期时间选择器的表单,它以“dd/MM/yyyy”格式显示我的计算机区域设置的日期 当我尝试将其插入数据库时,通过从DateTimePicker获取日期,如下所示: DateTimePicker1.Value.Date 我仍然得到一个错误。我知道Microsoft SQL只采用这种格式“

我在将日期插入数据库并显示时遇到问题。
我将Visual Basic 2013与Microsoft SQL数据库文件一起使用。
我有一个名为“约会”的表,有一个名为“日期”的列,其中包含日期类型。
我有一个带有日期时间选择器的表单,它以“dd/MM/yyyy”格式显示我的计算机区域设置的日期

当我尝试将其插入数据库时,通过从DateTimePicker获取日期,如下所示:

DateTimePicker1.Value.Date
我仍然得到一个错误。我知道Microsoft SQL只采用这种格式“MM/dd/yyyy”,但是有没有办法使用visual basic和SQL将“dd/MM/yyyy”转换为“MM/dd/yyyy”

Dim con As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=" + My.Settings.strTextbox + ";Integrated Security=True;Connect Timeout=30")
        Dim cmd As New SqlCommand("insert into Appointment (AssignDoc,Date,TimeFrom,FileNo) values (@AssignDoc,@Date,@TimeFrom,@FileNo)")
        cmd.Connection = con
        con.Open()
        cmd.Parameters.AddWithValue("@AssignDoc", ComboBox6.SelectedItem)
        cmd.Parameters.AddWithValue("@Date", DateTimePicker1.Value.Date)
        cmd.Parameters.AddWithValue("@TimeFrom", ComboBox1.SelectedItem)
        cmd.Parameters.AddWithValue("@FileNo", TextBox2.Text)
        Dim reader As SqlDataReader = Nothing
        Try
            cmd.ExecuteNonQuery()
            con.Close()
            'CreateAppointment()
            MsgBox("Appointment Created Successfully", MsgBoxStyle.Information, "Appointment Created")
            TextBox1.Text = ""
            TextBox2.Text = ""
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try

使用ADO.NET中的命令对象传递查询,并使用其机制插入参数。以字符串形式传递日期是问题的根源。您不能保证SQL Server数据库将配置为与硬编码日期格式兼容的排序规则


请参见您的声明
我知道Microsoft SQL仅采用这种格式“MM/dd/yyyy”
本身是错误的,因为SQL采用任何指定格式的日期

在将其输入数据库之前,只需将其转换为该格式

例如,如果以“mm/dd/yyyy”格式传递参数,则需要将其转换为sql格式

insert into Appointments (Date) values (convert(date,@parameter,101));

我可以看看你的代码吗?你的错误是什么?请尝试为DateTimePicker使用自定义格式。日期没有格式。DatePicker只是以一种给定的格式显示它,这种格式听起来像是在不同的区域性中。MS SQL可以采用任何格式。代码是什么?错误是什么?抱歉,我添加了代码,它将此格式插入数据库“dd/MM/yyyy”我希望它使用此格式“MM/dd/yyyy”存储在数据库中我的DateTimePicker显示此格式“dd/MM/yyyy”,但我希望它以此格式“MM/dd/yyyy”存储在数据库中。我这样做了,但仍然没有运气,存储的格式与我的DateTimePicker相同。。。。。。。。。Dim cmd作为新的SqlCommand(“插入到约会(AssignDoc,Date,TimeFrom,FileNo)值(@AssignDoc,convert(Date,@Date,101),@TimeFrom,@FileNo)”)无论传递给SQL的格式是什么,它都将仅以标准格式保存在表中。您必须在插入或检索时编写查询以相应地更改格式。由于现在您正在以MM/dd/YYYY格式保存它,因此在检索时,将其写为
convert(varchar(50),Date,101)
,它将以MM/dd/yyyyy格式为您提供输出对不起,我很困惑,我的select语句检索日期大于今天日期的日期。我应该将convert(varchar(50),Date,101)放在select语句的何处。从约会中选择convert(varchar(50),Date,101),其中Date>GetDate()不起作用!不显示大于今天日期的日期,我不知道当它作为日期存储在数据库中时为什么要将其转换为varchar。我想一起比较两个日期???提前谢谢。