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)
我收到错误:“无法从日期转换为字符串”
答案 0 :(得分:0)
很难指出,但您的字符串格式应为dd/MM/yy
。 mm
对应于分钟组件。
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)