字符串转换日期

时间:2013-10-17 04:58:38

标签: vb.net string date

Dim data1 As String
Dim conn1 As SqlConnection
Dim cmd1 As New SqlCommand
Dim ada1 As New SqlDataAdapter()
Dim ds1 As New DataSet

data1 = lbldmdate.Text.ToString()
conn1 = New SqlConnection("Persist Security Info=false;User Id=justin;Data Source=ARULJUSTIN\SQLEXPRESS;Initial Catalog=firemaintain;Integrated Security=True;Pooling=False")
conn1.Open()
ada1 = New SqlDataAdapter("select Recordno, uhnumber,uhbuilding,uhlocation from hydrantmaintain WHERE unndate= '" & Today.ToString("dd/mm/yyyy") & "'", conn)

ada1.Fill(ds1)
dgnxtmdates.DataSource = ds1.Tables(0)

我收到错误:“无法从日期转换为字符串”

3 个答案:

答案 0 :(得分:0)

很难指出,但您的字符串格式应为dd/MM/yymm对应于分钟组件。

Today.ToString("dd/MM/yyyy"); 

答案 1 :(得分:0)

如果 unndate 是数据库中的datetime数据类型,则在查询数据库时无需将Today转换为字符串。

原因是,Today已经是DateTime

但是,如果 unndate 是字符串数据类型,例如varchar或nvarchar,我唯一的建议是首先使用数据类型datetime作为unndate值,如果你想这样的查询。

答案 2 :(得分:0)

正如@Nawful所指出的那样,你使用的是“mm”(分钟)而不是“MM”(月份),但它看起来也像你的月和日相反。现在,这取决于您的区域日期设置,特别是您如何配置SQL服务器,但为了避免这些问题,我喜欢这样做的日期:

CONVERT(datetime, '" & Format(Value, "yyyy-MM-dd") & " 00:00:00', 102)

以及日期和时间:

CONVERT(datetime, '" & Format(Value, "yyyy-MM-ddTHH:mm:ss") & "', 126)

注意,Value是日期或日期时间数据类型。

在您的示例中,它将是这样的:

ada1 = New SqlDataAdapter("select Recordno, uhnumber,uhbuilding,uhlocation from hydrantmaintain WHERE unndate= CONVERT(datetime, '" & Format(Today, "yyyy-MM-dd") & " 00:00:00', 102)", conn)