0
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)

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

4

3 回答 3

0

很难指出,但你的字符串格式应该是dd/MM/yy. mm对应于分钟分量。

Today.ToString("dd/MM/yyyy"); 
于 2013-10-17T05:51:33.613 回答
0

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

原因,Today已经是一个DateTime.

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

于 2013-10-17T05:57:32.100 回答
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)
于 2013-10-17T17:05:00.253 回答